Ответ 1
CREATE UNIQUE NONCLUSTERED INDEX IX_TableName_MfgID_CustNum ON TableName
(
MfgID ,
Column2
) WITH( IGNORE_DUP_KEY = OFF)
возможно ли иметь SQL Server уникальный ключ на основе двух столбцов?
Я могу иметь дубликаты в обоих столбцах, но не в одно и то же время:
MfgID : CustNum
1 : Cust01
1 : Cust02
2 : Cust02
1 : Cust03
3 : Cust03
3 : Cust04
1 : Cust02
В приведенном выше примере все это будет отлично, за исключением последней строки. Я бы хотел, чтобы SQL Server выдавал ошибку для меня.
CREATE UNIQUE NONCLUSTERED INDEX IX_TableName_MfgID_CustNum ON TableName
(
MfgID ,
Column2
) WITH( IGNORE_DUP_KEY = OFF)
CREATE TABLE table1(
MfgID INTEGER NOT NULL,
CustNum VARCHAR(255) NOT NULL,
CONSTRAINT unique_1 UNIQUE (MfgID, CustNum)
)
ИЛИ
ALTER TABLE table1 ADD CONSTRAINT unique_1 UNIQUE(fgID, CustNum)
Да, он называется составной первичный ключ.
CREATE TABLE table1(
MfgID INTEGER NOT NULL,
CustNum VARCHAR(255) NOT NULL,
PRIMARY KEY (MfgID, CustNum)
)