0

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

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

4

2 回答 2

2

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

手动脚本和链接服务器:

设置链接服务器连接并使用 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。

于 2013-08-08T10:48:17.877 回答
0

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

于 2013-08-07T18:52:00.003 回答