基于SQl Server 2008中的2列的唯一键?

Sle*_*lee 12 sql-server sql-server-2008

让SQL Server拥有基于2列的唯一键是否可行?

我可以在两列中都有重复项但不能同时重复:

MfgID  :   CustNum   
1      :     Cust01   
1      :     Cust02  
2      :     Cust02  
1      :     Cust03  
3      :     Cust03  
3      :     Cust04  
1      :     Cust02
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,除了最后一行之外,所有这些都没问题.我希望SQL Server能为我解决这个错误.

ami*_*t_g 18

CREATE UNIQUE NONCLUSTERED INDEX IX_TableName_MfgID_CustNum ON TableName
(
        MfgID  ,
        Column2
) WITH( IGNORE_DUP_KEY = OFF)
Run Code Online (Sandbox Code Playgroud)

  • 认为它不是一个关键而不是一个指数? (2认同)

Rah*_*l R 7

CREATE TABLE table1(
  MfgID INTEGER NOT NULL,
  CustNum VARCHAR(255) NOT NULL,
  CONSTRAINT unique_1 UNIQUE (MfgID, CustNum)
)
Run Code Online (Sandbox Code Playgroud)

要么

ALTER TABLE table1 ADD CONSTRAINT unique_1 UNIQUE(fgID, CustNum)
Run Code Online (Sandbox Code Playgroud)