没有唯一约束,确保没有重复

时间:2015-07-30 10:27:02

标签: sql-server sql-server-2008

是否可以确保列不包含重复值而不使用UNIQUE约束(不想了解为什么要避免这种情况的原因)那个专栏?特别是我在考虑竞争条件。

为了简单起见,我们可以说相关列的类型为nvarchar(50)(类型甚至是重要的吗?)

1 个答案:

答案 0 :(得分:2)

可以通过触发器,在插入之前条件If Not Exists(...。但实际上UNIQUE CONSTRAINT最快。

另一种选择是在该列上创建唯一索引,这应该比触发和条件更快。

如果您不想为现有表添加唯一约束,则可以使用此字段nvarchar (50)创建其他表,并对其进行唯一约束。并在插入主事务表(插入语句内部或触发器中)之前,在此新表中插入此字段的值。