我设置了下表:
Id int
pk,唯一不为空Name varchar(50)
不为空- 与此问题无关的其他列
将索引设置Name
为唯一且非聚集的。
该设置完全符合我的要求 - 也就是说,只插入Name
表中不存在的新行,如果新行是重复的,则抛出错误Name
。
我可能对此很挑剔,但每次添加重复项的尝试都会导致 SQL Server 跳过本Id
应分配的下一个,如果新行是 non-duplicate 的话Name
。
有没有办法通过一些设置来防止这种情况,而无需在决定插入或拒绝之前先查询存在?