A | B
----------------------------
id | name | id | name
----------------------------
1 a | 1 a
1 b | 1 b
1 c | NULL NULL
我有两个表A,B,字段分辨为id和name,他们之间用id关联,现在我想把A表的数据复制到一个临时表中,
但是必须要满足下面条件只要A表id为1的数据与B表id为1的数据中有不相同的项,则把A数据插入的#RESULT表(换另外一种说法是A表中的name有个'c',而B表没有的name没有c,所以他们数据就不一样了,如果B表中数据完全和A表一样,那条件就不满足了)
----------------------------
id | name | id | name
----------------------------
1 a | 1 a
1 b | 1 b
1 c | NULL NULL
我有两个表A,B,字段分辨为id和name,他们之间用id关联,现在我想把A表的数据复制到一个临时表中,
但是必须要满足下面条件只要A表id为1的数据与B表id为1的数据中有不相同的项,则把A数据插入的#RESULT表(换另外一种说法是A表中的name有个'c',而B表没有的name没有c,所以他们数据就不一样了,如果B表中数据完全和A表一样,那条件就不满足了)
select *
from A
except
select *
from B--查找差值?
不是的,我意思是如果A表的数据与B表的数据有一行不相同的话,则把A表数据插到临时表中,
begin
insert into #RESULT select * from ta
end
1.ID不是主键
2.整个表A都插入
=
(SELECT CHECKSUM_AGG (CHECKSUM (*)) FROM tb)
begin
insert into #RESULT select * from ta
end
FROM A
EXCEPT
SELECT *
FROM B
) > 1
BEGIN
INSERT INTO #RESULT
SELECT *
FROM #a
END
没有主键的话用集合运算比较好,