insert items (ean)
select ean
from books
where ean not in (select ean from mrs..items)
假设书中有重复的内容。 sql会确定要预先插入哪些记录,然后继续插入重复项;或者它是否会通过检查来阻止自己插入重复项?
答案 0 :(得分:1)
这应该有效
insert into items (ean)
select Distinct ean
from books
答案 1 :(得分:1)
它会创建重复项,但您可以通过在select上指定distinct来防止这种情况,如下所示。
insert into items (ean)
select distinct ean
from books
where ean not in (select ean from mrs..items)
答案 2 :(得分:0)
您可以尝试以下代码
insert into items (ean)
select TOP 1 WITH TIES ean
from books
where ean not in (select ean from mrs..items)
ORDER BY ROW_NUMBER() OVER(PARTITION BY ean ORDER BY <criteria>)
您只需指定条件,如何选择重复的一条记录进行插入。
答案 3 :(得分:0)
我在之前的答案中遗漏的是小组的原因。
是的,您的语句会阻止重复,但前提是您尝试插入的选择中没有重复项。插入是原子的,因此检查不在(...)中只执行一次。
在集合中而不是在记录中思考。那么你可以不用'我测试过它就可以了......'评论。