我正在使用SQL Server 2008 Enterprise。我需要将Server/Instance“Server Foo”,Database“Foo”和表“Foo”中的所有数据导入到目标服务器/实例“Server Goo”,数据库“Goo”和表“Goo”中。 Table Foo和Table Goo具有相同的架构。如果表Goo存在同一行,我想将原始数据保存在Goo中,并在Foo中引入导入行(表Foo和表Goo都有一个名为CustomerID的唯一标识符类型列,它充当主键和聚簇索引),只是像忽略重复键那样。将数据从一个表导入另一个表
我正在寻找简单可靠的方法来编写T-SQL来解决数据导出/导入问题。任何参考样本?
编辑1:
我曾尝试用MERGE下面的解决方案,但遭到了SQL Server Management Studio中下面的错误。任何想法有什么不对?
一些更多信息:
LabTest1 \ SQLServer2008的=>服务器\实例名; OrderDB => DB名称; dbo =>模式名称; Orders =>表名。
merge into [dbo].[Orders] as Target
using "LabTest1\SQLServer2008.OrderDB.dbo.Orders" as source
on target.Hash = source.Hash
when not matched then
INSERT ([Hash]
,[Order]
,[Name]
,[CreationTime]
,[Description])
VALUES
(
source.[Hash], source.[Order], source.[Name], source.[CreationTime], source.[Description]
)
when MATCHED then
;
错误消息:
消息102,级别15,状态1,行16 附近有语法错误 ';'。
由于事先 乔治
然后只是将WHEN MATCHED THEN行全部删除 - 如果源和目标条目匹配,则不做任何事情,对吧?您可以在这里发布UPDATE语句 – 2009-08-05 11:17:44