首页 > 解决方案 > 如果表 B 中不存在数据,有没有办法将表 A 中的数据复制到表 B 中?

问题描述

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

标签: sql

解决方案


也许 aNOT 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如果表有主键并且比较它们就足够了,那么存在的可能会被简化。)


推荐阅读