有人知道如何复制SQL Azure数据库到我的开发机器吗?我不想再花钱在云端建立开发数据库,但这是获得生产数据的最佳方式。我将我的生产数据库复制到一个新的开发数据库,但我想在本地拥有相同的数据库。

有什么建议吗?


当前回答

看来2022年的Management Studio缺少功能了。下面是我如何使用Azure Data Studio:

安装Azure Data Studio Open Azure Data Studio 安装名为Admin Pack for SQL Server的扩展 重启Azure Data Studio 为源数据库(Azure)和目标数据库(本地机器)设置连接 在主数据库的本地DB引擎中执行语句:

sp_configure 'contained database authentication', 1; 
GO  
RECONFIGURE;
GO

右键单击源数据库并选择数据层应用程序向导 选择导出到。bacpac文件[导出bacpac](第四,在我的当前版本的最后一个选项) 完成向导 右键单击目标数据库并选择数据层应用程序 Wizzard 选择Import from .bacpac [Import bacpac](我的版本中的第三个选项) 选择先前创建的.bacpac文件并完成向导

在导入登录名和用户之后,创建了登录名和用户,但是没有设置它们的默认模式。如果需要默认的shcema,则需要手动处理。在这种情况下: 打开到本地副本的管理连接并运行: 使用[imported-db];ALTER USER - import - USER WITH DEFAULT_SCHEMA

其他回答

您也可以在Windows Azure管理门户中检查SQL Azure数据同步。它允许您检索和恢复整个数据库,包括SQL Azure和SQL Server之间的模式和数据。

您可以尝试使用“SQL数据库迁移向导”工具。 这个工具提供了从azure sql导入和导出数据的选项。

详情请点击这里。

https://sqlazuremw.codeplex.com/

使用SSMS v18.9+,您可以使用部署数据库到Microsoft Azure SQL数据库。

这不是很直观,但是向导允许您选择一个本地数据库,即使任务的名称是Deploy Database to Microsoft Azure SQL Database。

使用SSMS连接到Azure数据库 右键单击数据库,选择Tasks > Deploy database to Microsoft Azure SQL database。 选择本地SQL server作为目标连接。 按照其他步骤操作。

对我来说,诀窍是开始在空DB上复制pk /FKs/约束,然后在导入数据时暂时禁用约束(参见https://stackoverflow.com/a/161410)。

更准确地说应该是:

手动创建空目标DB; 右键单击源DB > Tasks >生成脚本; 在空的目标DB上运行脚本文件(现在DB有正确的PKs/FKs/约束,但没有数据); 禁用所有约束; 导入数据(右键单击目标DB > Tasks > Import data); 重新启用约束。

希望这能有所帮助!

在SQL Server 2016 Management Studio中,将azure数据库获取到本地机器的过程已经简化。

右键单击要导入的数据库,单击Tasks > Export data-tier application,然后将数据库导出到本地的.dacpac文件。

在本地目标SQL server实例中,可以右键单击Databases >导入数据层应用程序,一旦它是本地的,就可以执行备份和恢复数据库之类的操作。