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