用另一个替换一个数据库的表

时间:2010-04-23 06:57:48

标签: sql sql-server

我有2个具有相同表格的数据库。 DBProduction和DBLocal都有testTable。如何用DBLocal替换DBProduction的testTable?在DBLocal的testTable中插入了一些新行和一些更新的行。

使用SQL Server 2008

1 个答案:

答案 0 :(得分:3)

如果它们位于同一台服务器上并具有相同的表结构,则可以执行此操作:

Truncate Table DBProduction.dbo.testTable
Go

Insert Into DBProduction.dbo.testTable
Select * From DBLocal.dbo.testTable

如果它们位于不同的服务器上,您可以运行上面的truncate语句,然后右键单击DBProduction并选择Import Data。这将启动向导并为您导入数据。

编辑: 我还要补充一点,如果表结构不同,你应该Drop Table DBProduction.dbo.testTable然后使用Import Data向导导入(并默认重新创建)DBProduction中的testTable。

编辑2:

如果要在将列设置为Identity时插入(不列出所有列),则需要执行以下操作:

Set Identity_Insert DBProduction.dbo.testTable On

    Insert Into DBProduction.dbo.testTable
    Select * From DBLocal.dbo.testTable

Set Identity_Insert DBProduction.dbo.testTable Off

这将暂时忽略身份播种。

HTH

百里