Щелкните правой кнопкой мыши на SessionState
и выберите Check Constraints...
Затем добавьте свое ограничение.
Или выберите dbo.Table > Constraints > New Constraints... > Expression (under General)
и введите выражение.
([SessionState]='Unknown' OR [SessionState]='Useless' OR [SessionState]='Useful')
Полный размер: https://i.stack.imgur.com/AvgJX.png
Полный размер: 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