我有一个这样的表:
|UserId | ContactID | ContactName
---------------------------------------
| 12456 | Ax759 | Joe Smith
| 12456 | Ax760 | Mary Smith
| 12458 | Ax739 | Carl Lewis
| 12460 | Ax759 | Chuck Norris
| 12460 | Bx759 | Bruce Lee
我需要添加一个约束到这个表中,这样没有用户可以有重复的联系人id。用户正在从各种外部系统导入数据,所以ContactId不会是全盘唯一的,而是每个用户都是唯一的。
我知道如何基于单个列创建唯一和非Null约束,但如何跨两列创建唯一约束?
发布于 2009-07-10 13:47:44
您可以尝试这样做:
CREATE UNIQUE CLUSTERED INDEX index_name ON TABLE (col1,col2)
或
CREATE UNIQUE NONCLUSTERED INDEX index_name ON TABLE (col1,col2)
或
ALTER TABLE [dbo].[TABLE] ADD CONSTRAINT
UNIQUE_Table UNIQUE CLUSTERED
(
col1,
col2
) ON [PRIMARY]
发布于 2009-07-10 13:49:03
您可以为您的字段添加唯一约束:
ALTER TABLE YourTable
ADD CONSTRAINT UQ_UserId_ContactID UNIQUE(UserId, ContactID)
发布于 2011-07-05 15:13:16
你可以试试ALTER TABLE [TABLE_NAME] ADD UNIQUE (column1,column2,column3 ...columnN)
。
希望这能帮助大家振作起来。
https://stackoverflow.com/questions/1109614
复制相似问题