我们在 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 没有迁移。存储过程和一切都按预期工作。
有多种方法可以做到这一点,最简单的是:
您可以在 SSMS(SQL Server Management Studio) 中创建 .bacpac 文件:
Right click the database -> Tasks -> Back Up...
这将生成一个可用于恢复的文件。
另一种方法是使用 Microsoft 的 SqlPackage 工具,您可以在这里找到文档: https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-export?view=sql-server-ver15