Sql 将表1中的数据插入表2(如果不存在),否则更新表2中的数据以匹配表1。在任何一种情况下,从表1中删除
我在SQLServer中有两个表(T1和T2),需要实现以下目标 假设T1的列是项目ID,单位 T2的列是项目ID,单位 对于T1中单位大于5的每条记录,如果T2中不存在该记录,则将其插入T2并从T1中删除 对于T1中单位大于5的每条记录,如果该记录确实存在于T2中,则在T2中更新该记录并将其从T1中删除 我尝试使用合并,但它不适合我,可能我无法以正确的方式完成Sql 将表1中的数据插入表2(如果不存在),否则更新表2中的数据以匹配表1。在任何一种情况下,从表1中删除,sql,sql-server,database,Sql,Sql Server,Database,我在SQLServer中有两个表(T1和T2),需要实现以下目标 假设T1的列是项目ID,单位 T2的列是项目ID,单位 对于T1中单位大于5的每条记录,如果T2中不存在该记录,则将其插入T2并从T1中删除 对于T1中单位大于5的每条记录,如果该记录确实存在于T2中,则在T2中更新该记录并将其从T1中删除 我尝试使用合并,但它不适合我,可能我无法以正确的方式完成 非常感谢您的帮助。首先,您需要对表2进行更新和插入 将表2合并为目标 使用表1作为源 在target.ID=source.ID上 当目
非常感谢您的帮助。首先,您需要对表2进行更新和插入
将表2合并为目标
使用表1作为源
在target.ID=source.ID上
当目标和源不匹配时。单位>5
然后
插入(ID,单位)值(source.ID,source.Units)
匹配和源时。单位>5
然后
更新集合单位=source.Units
输出$action,
inserted.ID与inserted一样,
插入。单位作为插入单位;
然后您需要交换源和目标表并删除指定的行
将表1合并为目标
使用表2作为源
在target.ID=source.ID上
匹配和源时。单位>5
然后
删除
输出$action,
deleted.ID作为DeletedID,
已删除。单位为删除的单位;
提示:MERGE
可以执行更新和插入操作。@GordonLinoff,根据我的示例,查询是什么?很抱歉,我是SQL的初学者,以后无法实现。请显示一些示例数据+预期结果,并向我们展示您的尝试,无论它离工作有多近。谢谢,它帮助并解决了问题