【问题标题】:How to backup table data only, for move with upgrade SQL Server 2000 --> SQL Server 2008?如何仅备份表数据,以升级 SQL Server 2000 --> SQL Server 2008?
【发布时间】:2013-08-07 18:40:58
【问题描述】:

我们已将生产数据库 (SQL Server 2000) 的副本升级到 SQL Server 2008,并对存储过程进行了一系列修复和更改。现在,我想将当前数据从生产环境 (SQL Server 2000) 中复制出来,并将其推送到新的 SQL Server 2008 中,并将生产应用程序指向新的应用程序。所有的表模式都没有改变。

我知道将所有表编写为插入文件的脚本是一种可能性。这是最好的方法吗?还是有更好的方法?外键会成为问题吗?

【问题讨论】:

  • 我最终做的是编写 SP 脚本并在完整的数据库备份之上重新应用它们。但我很高兴知道下次要考虑的其他选择。

标签: sql-server tsql sql-server-2000


【解决方案1】:

以下是您可以做的几件事,所有这些都有优点和缺点:

手动脚本和链接服务器:

设置链接服务器连接并使用 INSERT INTO

INSERT INTO server2008.databaseName.schemaName.TableName (Col1, Col2, ..., Coln)
SELECT Col1, Col2, ..., Coln
FROM server2000.databaseName.schemaName.TableName

注意这些的执行顺序。确保首先迁移没有引用的表以避免外键问题

您甚至可以在某些表上临时禁用外键和身份插入

ALTER TABLE MyTable NOCHECK CONSTRAINT FK_Constraint
SET IDENTITY_INSERT tableName ON

-- INSERT STATEMENT HERE

SET IDENTITY_INSERT tableName OFF
ALTER TABLE MyTable CHECK CONSTRAINT FK_Constraint

导出数据向导

Tomasito 已经建议过——只要确保以正确的顺序执行脚本即可。没有引用的表的第一个脚本,而不是仅引用先前插入的表中的数据的表等等......。

第三方工具

其中有许多可以为您完成这项工作。如果这是一项一次性任务,您可以使用试用版完成工作。我知道的一对是 ApexSQL Data Diff、SQL Data Compare、AdeptSQL Diff。

【讨论】:

    【解决方案2】:

    在 Microsoft SQL Server Management Studio 中,右键单击数据库和 ImportExport 选项。另一种方法是使用 SQL Prompt:SQL Compare(付费工具)。您必须尝试使用​​您的数据集并确定更适合您的选项。

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 2010-12-12
      • 2011-05-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多