【发布时间】:2016-12-15 22:56:45
【问题描述】:
这是我目前的困境:我需要将数据库(包括数据)从 SQL Server 版本 13 迁移到版本 12。源在 Azure 机器上,目标在我的本地机器上。我无法在本地机器上安装 SQL Server 2016;这不是一个选择。我该怎么做?
【问题讨论】:
标签: sql sql-server azure migration
这是我目前的困境:我需要将数据库(包括数据)从 SQL Server 版本 13 迁移到版本 12。源在 Azure 机器上,目标在我的本地机器上。我无法在本地机器上安装 SQL Server 2016;这不是一个选择。我该怎么做?
【问题讨论】:
标签: sql sql-server azure migration
【讨论】:
您可以尝试使用SqlPackage 导出 Azure 数据库吗?
我最近做了与你相反的操作,将 SQL Server 2012 数据库导出到 Azure SQL V12。我将 SqlPackage 和 Visual Studio 与 SQL Server Data Tools 结合使用。
基本上,我基于源数据库(托管 SQL Server 2012)创建了一个 SQL 项目,将目标平台设置为 Microsoft Azure SQL V12,并修复了 Azure SQL V12 不支持的所有错误和警告。
然后我在源数据库和 SQL 项目之间进行了架构比较。有了这个,我生成了一个针对源数据库副本运行的脚本。
最后,我使用 SqlPackage 从运行脚本的数据库中创建了一个 .bacpac,然后我可以将其部署到 Azure。
如果你反其道而行之,也许它会奏效。在使用 Azure SQL 时,务必更新软件。
【讨论】:
似乎答案在插入脚本中,我没有意识到这是一件事。 How to generate an INSERT script for an existing SQL Server table that includes all stored rows?有很好的信息
编辑:另一个答案说不要生成插入脚本来复制数据库中的所有数据。我试过了,它似乎失败了,因为脚本本身有一些截断(它最终超过 11 GB)。与我合作的一位开发人员建议使用 bcp 实用程序(this link 上的文档),我还没有尝试过。
【讨论】: