bre*_*dan 57 sql-server sql-server-2005 constraints unique-constraint sql-server-2008
我有一个像这样的表:
|UserId | ContactID | ContactName
---------------------------------------
| 12456 | Ax759 | Joe Smith
| 12456 | Ax760 | Mary Smith
| 12458 | Ax739 | Carl Lewis
| 12460 | Ax759 | Chuck Norris
| 12460 | Bx759 | Bruce Lee
Run Code Online (Sandbox Code Playgroud)
我需要为此表添加一个约束,以便没有用户可以拥有重复的联系人ID.用户正在从各种外部系统导入数据,因此ContactId不是全面唯一的,但在每个用户的基础上是唯一的.
我知道如何基于单列创建唯一和非空的约束,但是如何在2列中创建唯一的约束?
Jon*_*han 59
你可以试试这个:
CREATE UNIQUE CLUSTERED INDEX index_name ON TABLE (col1,col2)
or
CREATE UNIQUE NONCLUSTERED INDEX index_name ON TABLE (col1,col2)
Run Code Online (Sandbox Code Playgroud)
要么
ALTER TABLE [dbo].[TABLE] ADD CONSTRAINT
UNIQUE_Table UNIQUE CLUSTERED
(
col1,
col2
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
Ada*_*Dev 37
您可以在字段中添加唯一约束:
ALTER TABLE YourTable
ADD CONSTRAINT UQ_UserId_ContactID UNIQUE(UserId, ContactID)
Run Code Online (Sandbox Code Playgroud)
你可以试试ALTER TABLE [TABLE_NAME] ADD UNIQUE (column1,column2,column3 ...columnN)
.
希望这有助于欢呼.