是否可以确保列不包含重复值而不使用UNIQUE约束(不想了解为什么要避免这种情况的原因)那个专栏?特别是我在考虑竞争条件。
为了简单起见,我们可以说相关列的类型为nvarchar(50)
(类型甚至是重要的吗?)
答案 0 :(得分:2)
可以通过触发器,在插入之前条件If Not Exists(...
。但实际上UNIQUE CONSTRAINT
最快。
另一种选择是在该列上创建唯一索引,这应该比触发和条件更快。
如果您不想为现有表添加唯一约束,则可以使用此字段nvarchar (50)
创建其他表,并对其进行唯一约束。并在插入主事务表(插入语句内部或触发器中)之前,在此新表中插入此字段的值。