如何仅备份表数据,以便与升级SQL Server 2000一起移动 - > SQL Server 2008?

时间:2013-08-07 18:40:59

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

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

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

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