如果表B中不存在数据,是否可以将数据从表A复制到表B?

时间:2018-12-20 16:52:34

标签: sql

我在两个不同的服务器中有两个表,但是服务器是链接的。我想比较一台服务器的表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

1 个答案:

答案 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。)