【问题标题】:Moving only data from SQL Server 2000 to 2012 check list仅将数据从 SQL Server 2000 移动到 2012 检查列表
【发布时间】:2016-06-13 03:02:03
【问题描述】:

我需要将两台服务器之间的生产数据从 SQL Server 2000 移动到 SQL Server 2012。

数据库已经完美移动。生产数据需要在一夜之间移动并准备好在第二天使用。所以计划如下:

  1. 移动所有配置表的数据。

  2. 移动另一个表的数据。这里出现了一个问题:我应该如何处理标识列?几乎所有的表都有标识列,在某些情况下它们是外键。这个应该怎么处理?

  3. 将作业编写为 create and run 并禁用创建所有作业。

  4. 移动 SSIS 数据库和配置表。

  5. 更新 SSIS 包内的连接并将它们部署到新服务器上。

还有什么我应该考虑的吗?如何做到第二步不出错?

【问题讨论】:

  • 您可以使用SET IDENTITY_INSERT (tablename) ON 将现有标识值插入到具有标识列的表中。一次只有一张桌子 - 完成后立即使用SET IDENTITY_INSERT (tablename) OFF 再次将其关闭。这应该照顾身份值
  • 您如何移动数据?手动,使用导出的文件?或者您是否使用 SSIS 连接到 SQL 2000 DB,并使用数据泵传输数据?还是???
  • @LaughingVergil 打算手动做,基本上是想运行一个脚本,先截断所有表,然后从旧服务器一个一个插入到新服务器上的表中。主要问题是如何处理外键约束。无论 FK 如何截断表?
  • @marc_s,谢谢 Marc_s。做了一个没有问题的测试。截断表格时FK约束怎么样?
  • 这可以在导入向导中完成 - 您只需要知道要选择的(隐藏在可选区域中的)选项。我将把它写在下面的答案中。

标签: sql-server ssis sql-server-2012 sql-server-2000 core-data-migration


【解决方案1】:

如上所述,导入/导出向导将干净地导入此数据。如果您了解 SSIS 编程,则可以对其进行编辑以自动导入不同文件中的数据。

首先,让我们进行基本的导入。开始和正常导入一样——在SSMS中右键数据库,选择导入数据,选择一个平面文件(以表名+.txt为名称,这会自动将导入关联到正确的表中目标数据库),为输入文件设置列——列名和数据类型与目标表中的名称和数据类型匹配,以便建立正确的关联)。

在设置目的地时,您会有一个不同之处。首先选择正确的目标类型、服务器名称和身份验证,然后选择目标数据库。在选择源表和视图屏幕上: 并确保您选择了正确的来源和目的地。然后(重要部分从这里开始)单击“编辑映射”按钮。您将被带到此屏幕: 选择正确的行处理方式(追加或删除后添加),然后单击启用身份插入复选框开启部分结束回答您的问题),然后单击“确定”。

如果 Review 页面上的所有内容均正确无误,请选择是否保存包(如果您想自动化该过程,这很有用)并运行包。

,您的数据已导入,身份字段已正确导入,一切正常。

【讨论】:

    猜你喜欢
    • 2013-08-19
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2013-02-08
    • 2016-03-25
    • 2014-07-25
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多