sql - 如果表 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
解决方案
也许 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
如果表有主键并且比较它们就足够了,那么存在的可能会被简化。)
推荐阅读
- php - PHP删除重复的数组值,它是一个日期
- sql - 修改查询以根据特定列检查组内的多个值
- flutter - Flutter中AppBar如何覆盖notch区域
- php - 如何将数组转换为字符串?数据库显示数组关键字而不是字符串
- javascript - javascript - 在这些字符之一之前返回字符串
- ruby-on-rails - 按键对嵌套哈希中的项目进行排序
- php - webpack-encore-bundle 未知的“encore_entry_script_tags”函数
- java - 使用 JUnit 测试 Spring 安全性时如何删除“ROLE_”前缀?
- compilation - 如何与 .gpr 项目文件和 gprbuild 交叉编译?
- python - PySMB 连接但无法存储文件