导出SQL Server数据库时无PK或FK

问题描述 投票:0回答:2

我们在 Microsoft Azure 上托管了一个生产数据库和一个临时数据库。我们使用 Microsoft SQL Server Management Studio 19 进行迁移。

步骤如下

Right click the database -> Tasks -> Export Data...

我们选择

SQL Server Native Client 11.0
作为数据源。

对于身份验证,我们选择“使用 SQL Server 身份验证”并输入我们的用户名和密码。

在“数据库”中,我们选择生产数据库

单击“下一步”后,我们现在将选择目的地。对于目标,我们使用“SQL Server Native Client 11.0”和与上面相同的设置,但只是将我们的临时数据库作为目标。

现在是时候“指定表复制或查询”了,这里我们选择“从一个或多个表或视图复制数据”。

我们现在标记所有表格并选择

Edit Mappings...
,我们在其中启用
Enable identity insert

如果我们然后按“下一步”并开始迁移,一切似乎都已完成,没有任何错误或警告。

但是 - 由于某种原因,我们所有的 PK 和 FK 关系都没有导出到我们的暂存数据库中。

我们尝试查找单个表,只是为了查看生成的 SQL 查询,它看起来像所附的图像。

谁能告诉我们,我们做错了什么。我们不知道为什么 PK 和 FK 没有迁移。存储过程和一切都按预期工作。

enter image description here

sql sql-server azure azure-sql-database
2个回答
0
投票

两种方式导出PK和FK。

  1. 使用SSMS生成sql脚本。我们只需要选择表。它将在您的本地 PC 中生成 script.sql。

enter image description here

2 我们可以查询System表和视图来拼接FK和PK的SQL语句。


0
投票

有多种方法可以做到这一点,最简单的是:

  1. 您可以在 SSMS(SQL Server Management Studio) 中创建 .bacpac 文件:

    Right click the database -> Tasks -> Back Up...
    

    这将生成一个可用于恢复的文件。

  2. 另一种方法是使用 Microsoft 的 SqlPackage 工具,您可以在这里找到文档: https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-export?view=sql-server-ver15

© www.soinside.com 2019 - 2024. All rights reserved.