2015-01-05 201 views
9

有没有工具可以将SQL Server 2014数据库转换为2012?SQL Server 2014备份到2012

我试过生成脚本但生成的数据脚本太大,SQL Server Management Studio没有执行它,我需要同时拥有模式和数据。

回答

8

据我所知,基本上有 3个两个选项迁移数据库的SQL Server版本较低,而无需使用第三方工具:

  • 生成脚本(不是真的适合大量数据)
  • 自定义脚本和BCP或导入/导出向导
  • SQL Server集成服务(传输数据库任务)

第一选项不适合你的情况,如上所述。

第二个选项是简单地编写数据库结构的脚本,然后使用导入/导出向导一次一个表复制数据。请注意,如果数据库中存在外键约束,则可能需要先禁用约束,直到用数据填充所有表之后为止。 This blog post详细解释了如何做到这一点。

第三选项使用基本上使用SMO创建目标服务器上的对象,然后将数据传送的SISS Transfer Database Task。这是在不同版本的SQL Server实例之间迁移数据库的推荐方法。 SSIS要求您已经为Visual Studio安装了SQL Server数据工具 - 商业智能(SSDT-BI)。在SQL Server 2012之前,这被称为商业智能开发工作室(BIDS)。你可以在这里下载这些:

+0

如何使用SSIS传输数据库任务? Microsoft SQL Server数据工具必须安装在Visual Studio中?或... – Azarsa

+0

我已经更新了我的答案,并提供了一些关于SSDT-BI和BIDS的链接。 – Dan

3

使用该脚本,但不是通过Management Studio执行它,而是使用轻量级sqlcmd实用程序。

http://msdn.microsoft.com/es-es/library/ms162773.aspx

+1

如果数据库包含具有数百万行的表,那么生成的脚本可能变得不切实际地很大(数十或数百GB)。即使使用sqlcmd实用程序来执行这样一个巨大的脚本也会很痛苦。 – Dan

+0

@Dan我用这个方法加载了几千兆字节的数据文件没有问题.. – Oscar

+0

好吧,我必须承认我从来没有尝试过。但通常情况下,脚本将占用数据库本身2-3倍的空间,如果您的环境中没有足够的磁盘空间,这可能会成为问题。这显然可以通过将脚本分解为更小的部分来解决,但它看起来比使用更多的工作,例如[SSIS传输数据库任务](http://msdn.microsoft.com/en-us /library/ms141204.aspx)。 – Dan

1

哦,好吧,丹的第二个选项不起作用:在安装SSDT-BI为VS2013和配置数据库传输任务,它说的是,源数据库实例的版本必须低于或等于版本后目标数据库实例:因此,从2014年到2012年(或在我的情况下为2008R2)的迁移是不可能的。

相关问题