insert items (ean)
select ean
from books
where ean not in (select ean from mrs..items)
假设书中有重复。sql会先确定要插入哪些记录,然后再继续插入重复;还是会通过检查来防止自己插入重复项?
insert items (ean)
select ean
from books
where ean not in (select ean from mrs..items)
假设书中有重复。sql会先确定要插入哪些记录,然后再继续插入重复;还是会通过检查来防止自己插入重复项?
这应该工作
insert into items (ean)
select Distinct ean
from books
它会创建重复项,但您可以通过在 select 上指定 distinct 来防止这种情况发生,如下所示。
insert into items (ean)
select distinct ean
from books
where ean not in (select ean from mrs..items)
你可以试试下面的代码
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>)
您只需要指定条件,即应如何选择重复记录中的一条记录进行插入。
我在以前的答案中错过的是 group by 的原因。
是的,您的语句可以防止重复,但前提是您尝试插入的选择中没有重复。插入是原子的,因此检查不在 (...) 中只执行一次。
在集合中而不是在记录中思考。然后你可以不用'我已经测试过它并且它有效......'评论。