当我在多对多关系表中插入行时,我试图忽略重复项,但是我发现的所有示例都在修改表中的键。
我想知道是否有某种方式可以仅针对我要执行的插入操作设置此操作,
insert into Table(IDA, IDB) VALUES(1,2) ignore_dup_key = ON;
谢谢。
答案 0 :(得分:1)
“ ignore_dup_key = ON”是您在创建索引时定义的属性。这不是查询提示。
CREATE UNIQUE NONCLUSTERED INDEX ix_table
ON dbo.Table (KeyColumn)
WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY];
答案 1 :(得分:1)
我刚刚在@Alvaro Garcia评论后编辑了这个答案
insert into Table(IDA, IDB)
SELECT T.IDA, T.IDB
FROM (SELECT 1 as IDA, 2 as IDB) T
LEFT JOIN Table T2 ON T.IDA = T2.IDA AND T.IDB = T2.IDB
WHERE T2.IDA is null
在我只是检查存在性然后再插入之前。