Простой синтаксис: несколько ограничений в операторе Alter Table - PullRequest
9 голосов
/ 23 января 2011

Если у меня есть это утверждение:

ALTER TABLE RecipeBox.Recipe ADD CONSTRAINT AKRecipeBox_Recipe_Name 
UNIQUE NONCLUSTERED (Name)

Как добавить еще одно ограничение к этому утверждению?Это вообще возможно?

Спасибо

Использование SQL SERVER 2008 Developer Edition

Ответы [ 4 ]

12 голосов
/ 23 января 2011

Добавьте запятую, затем добавьте новое ограничение (без добавления ключевого слова), например:

ALTER TABLE RecipeBox.Recipe ADD CONSTRAINT AKRecipeBox_Recipe_Name 
UNIQUE NONCLUSTERED (Name), 
CONSTRAINT your_constraint UNIQUE NONCLUSTERED (yourColumn) -- (or whatever type of constraint you're looking for)
6 голосов
/ 23 января 2011

Немного измените макет и прочитайте ALTER TABLE

ALTER TABLE RecipeBox.Recipe WITH CHECK ADD
    CONSTRAINT AKRecipeBox_Recipe_Name UNIQUE NONCLUSTERED (Name),
    CONSTRAINT FK_foo_bar FOREIGN KEY ..., 
    CONSTRAINT CK_foo_bar CHECK (...)

Редактировать: используйте WITH CHECK, чтобы убедиться, что ограничения действительны ...

2 голосов
/ 09 августа 2017

Поскольку заголовок этого вопроса не относится к SQL Server, я открыл его, чтобы найти решение для БД Oracle, отличающееся от принятого ответа. Поэтому я оставлю это ниже на случай, если кто-то еще последует моим шагам.

Для базы данных Oracle:

ALTER TABLE RecipeBox.Recipe
ADD (CONSTRAINT your_first_constraint, CONSTRAINT your_second_constraint);
1 голос
/ 29 ноября 2012
ALTER TABLE RecipeBox,Recipe WITH CHECK 
ADD   CONSTRAINT Cons_1 UNIQUE CLUSTERED
(
    Col1,
    Col2
)

В случае проверки ограничения вы также можете использовать правило

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