【问题标题】:SQL Server 2014 backup to 2012SQL Server 2014 备份到 2012
【发布时间】:2015-03-02 21:02:38
【问题描述】:

是否有任何工具可以将 SQL Server 2014 数据库转换为 2012?

我试过生成脚本,但是生成的脚本数据太大,SQL Server Management Studio没有执行,我需要架构和数据。

【问题讨论】:

    标签: sql-server sql-server-2012 database-migration


    【解决方案1】:

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

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

    【讨论】:

    • 如果数据库包含数百万行的表,生成的脚本可能会变得不切实际(几十或几百 GB)。即使使用 sqlcmd 实用程序,执行如此庞大的脚本也会很痛苦。
    • @Dan 我用这种方法加载了几千兆字节数据的文件没有问题..
    • 好吧,我必须承认我从未尝试过。但通常,该脚本占用的空间是数据库本身的 2-3 倍,如果您的环境中没有足够的磁盘空间,这可能会成为问题。这显然可以通过将脚本分解成更小的部分来解决,但它似乎比使用 SSIS Transfer Database Task 等工作要多得多。
    【解决方案2】:

    据我所知,在不使用第三方工具的情况下,基本上有 三个 两个选项可以将数据库迁移到较低版本的 SQL Server:

    • 生成脚本(不太适合大量数据)
    • 自定义脚本和 BCP 或导入/导出向导
    • SQL Server 集成服务(传输数据库任务)
    如上所述,

    第一个选项不适合您的情况。

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

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

    【讨论】:

    • 如何使用 SSIS 传输数据库任务? Microsoft SQL Server Data Tools 必须安装在 Visual Studio 中吗?或...
    • 我已经用一些关于 SSDT-BI 和 BIDS 的链接更新了我的答案。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2014-09-22
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多