Как применить ограничение в два столбца? - PullRequest
0 голосов
/ 14 мая 2010

У меня есть столбец CustomerID и столбец EffectiveDate в таблице.

Мне нужно, чтобы комбинация этих двух была уникальной.

Однако у меня уже есть первичный ключ в целочисленном столбце с автоматическими номерами.

Какой хороший способ достичь моей цели?

Спасибо

Ответы [ 4 ]

7 голосов
/ 14 мая 2010

Просто добавьте уникальное ограничение:

Alter Table TableName
  Add Constraint UC_TableName_Col1Col2 Unique ( Col1, Col2 )

SQL Server создает уникальный индекс при создании уникального ограничения. Если кластеризованный индекс уже существует, то приведенное выше создаст этот индекс как некластеризованный. Тем не менее, вы можете быть явно так:

Alter Table TableName
  Add Constraint UC_TableName_Col1Col2 Unique Nonclustered ( Col1, Col2 )
3 голосов
/ 14 мая 2010
CREATE UNIQUE INDEX Some_Index_Name ON My_Table (CustomerID, EffectiveDate)
1 голос
/ 14 мая 2010
CREATE TABLE MyTable
(
<columns here>
CONSTRAINT U_ConstraintName UNIQUE (CustomerID, EffectiveDate)
)
1 голос
/ 14 мая 2010

Попробуйте создать УНИКАЛЬНЫЙ индекс по двум столбцам.

CREATE TABLE Example
(Col1 int NOT NULL,
Col2 int NOT NULL,
UNIQUE (Col1, Col2)
)

Пример взят из этой темы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...