![](/img/trans.png)
[英]How to backup SQL Server 2008 database - only the objects, without data
[英]How to backup table data only, for move with upgrade SQL Server 2000 --> SQL Server 2008?
我们已将生产数据库(SQL Server 2000)的副本升级到SQL Server 2008,并对存储过程进行了大量修复和更改。 现在,我想将当前数据从生产中复制(SQL Server 2000)并将其推送到新的SQL Server 2008,并将生产应用程序指向新的应用程序。 所有表模式都保持不变。
我知道将所有表脚本化为文件的插入是一种可能性。 这是最好的方法吗? 还是有更好的方法? 外键是否会出问题?
以下是您可以做的几件事,所有这些都有优点和缺点:
手动脚本和链接服务器:
设置链接的服务器连接并使用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。
在Microsoft SQL Server Management Studio中右键单击数据库和Import
和Export
选项。 另一种方法是使用SQL Prompt:SQL Compare(付费工具)。 您必须尝试使用数据集,并选择更适合您的选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.