我正在使用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