小编典典

如何在多列上放置唯一约束

sql

EmpID DeptID

1     1
1     2
2     1
3     2
4     5
5     2
1     1   
2     1

我希望有一个约束来确保该对字段始终是唯一的,示例中所示的最后两个数据不应插入表中。在上表中,请注意最后两行是重复,我想防止此类数据的发生。如何在sqlserver
2005中实现此目标。


阅读 161

收藏
2021-04-22

共1个答案

小编典典

ALTER TABLE <YourTable, sysname, Emp> 
ADD CONSTRAINT <YourConstraintName, sysname, uix> 
UNIQUE NONCLUSTERED (EmpID,DeptID)

(粘贴到SSMS中并使用(CTRL + Shift + M))

或者在创建表时执行此操作,听起来好像没有替代键的使用。

CREATE TABLE EMPLOYEE_DEPARTMENT(
    EmpID int NOT NULL REFERENCES EMPLOYEE(EmpID),
    DeptID int NOT NULL REFERENCES DEPARTMENT(DeptID),
 CONSTRAINT PK_EMPLOYEE_DEPARTMENT PRIMARY KEY CLUSTERED (EmpID ASC,DeptID ASC)
)
2021-04-22