在多个SQL Server列上执行唯一性
>通常,数据库完整性需要基于多个列值来防止重复行。本文演示了如何在PersonNumber
>表中的Active
>和Person
列上执行唯一的约束。
实现唯一约束>
删除任何预先存在的重复条目后,使用以下方法之一应用约束:
语句:ALTER TABLE
这将约束直接添加到现有表中。
<code class="language-sql">ALTER TABLE dbo.Person ADD CONSTRAINT uq_Person_NumberActive UNIQUE (PersonNumber, Active);</code>
语句:CREATE UNIQUE INDEX
这会创建一个唯一的索引,该索引隐含地执行了唯一性约束。
<code class="language-sql">CREATE UNIQUE INDEX uq_Person_NumberActive ON dbo.Person (PersonNumber, Active);</code>
> 虽然上述方法有效,但请考虑以下这些增强:
>
TRY...CATCH
INSTEAD OF
说明性示例INSTEAD OF
这确保了每种独特组合和
>状态的独特组合仅存在一个记录。 任何插入重复的尝试都会导致错误。 切记用实际的模式和表名称替换。
>以上是如何在SQL Server中的多个列中执行唯一的约束?的详细内容。更多信息请关注PHP中文网其他相关文章!