Где я могу установить проверочное ограничение в режиме конструктора таблиц SSMS - PullRequest
0 голосов
/ 28 апреля 2018

Так вот у меня есть таблица:

enter image description here

Я хочу добавить проверочное ограничение для столбца SessionState в вышеприведенном режиме конструктора, чтобы оно могло работать как перечисление. Но, к сожалению, я не могу найти место, где я могу это сделать.

Я тоже правильно пробовал "right click -> script table as-> create table", но здесь я не могу сделать ненулевую проверку:

enter image description here

1 Ответ

0 голосов
/ 28 апреля 2018

Щелкните правой кнопкой мыши на SessionState и выберите Check Constraints...
Затем добавьте свое ограничение.

enter image description here

Или выберите dbo.Table > Constraints > New Constraints... > Expression (under General) и введите выражение.

([SessionState]='Unknown' OR [SessionState]='Useless' OR [SessionState]='Useful')

enter image description here
Полный размер: https://i.stack.imgur.com/AvgJX.png

enter image description here
Полный размер: https://i.stack.imgur.com/HMsEK.png

Или просто введите этот код

Alter Table TableName
ADD CONSTRAINT Constraint_name Check (SessionState IN ('Useful', 'Useless', 'Unknown'))

Обновлено

(резервное копирование всех данных)

Запустите этот запрос и получите все нулевые и неподдерживаемые значения. Затем измените их (измените значения SessionState).

Select * from [Session] WHERE SessionState IS NULL OR SessionState NOT IN ('Useful', 'Useless', 'Unknown')

Чтобы изменить, используйте эти запросы ...

UPDATE [Session] SET SessionState='Unknown' WHERE SessionState IS NULL

UPDATE [Session] SET SessionState='Unknown' WHERE SessionState NOT IN ('Useful', 'Useless', 'Unknown')

Сделайте первый шаг снова после изменения значений.

Затем выполните эти запросы ...

Alter Table Session
ALTER COLUMN SessionState nchar(40) NOT NULL

Alter Table Session
ADD CONSTRAINT Constraint_name Check (SessionState IN ('Useful', 'Useless', 'Unknown'))

Демо: http://rextester.com/TGW65894

Для получения дополнительной информации см. Это видео: https://youtu.be/9Zj5ODhv0b0

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