我在两个不同的服务器中有两个表,但是服务器是链接的。我想比较一台服务器的表A和另一台服务器的表B。如果表B包含表A没有的记录,我想复制该记录并将其插入表A。我试图使用Insert Into Select语句,但是无法执行它。任何帮助,将不胜感激。谢谢
我试图使用Insert Into Select语句,但是无法执行它。
INSERT INTO PHYSICAL_INVENTORY (ITEMKEY, ITEM_NUMBER, WHSE_BIN_KEY,
CONTROL_NUMBER)
SELECT T.ItemKey, I.ItemID, T.WhseBinKey, T.CtrlNo
from [Server B].prod.dbo.counttran T
inner join [Server B].prod.dbo.timItem I on I.ItemKey = T.ItemKey
Where ITEMKEY <> T.ItemKey
答案 0 :(得分:0)
也许您搜索的是NOT EXISTS
。
INSERT INTO physical_inventory
(itemkey,
item_number,
whse_bin_key,
control_number)
SELECT b.itemkey,
b.itemid,
b.whsebinkey,
b.ctrlno
FROM [Server B].prod.dbo.counttran b
WHERE NOT EXISTS (SELECT *
FROM physical_inventory a
WHERE a.itemkey = b.itemkey
AND a.item_number = b.itemid
AND a.whse_bin_key = b.whsebinkey
AND a.control_number = b.ctrlno);
(如果表中有主键并且足以对其进行比较,则可以简化存在的WHERE
。)