Я хочу добавить ограничение на столбец, который зависит от столбца из другой таблицы. Например, если в таблице T1 у меня есть строковый столбец str1, а в таблице T2 у меня есть строка clumn str2, я хочу, чтобы str1 был нулевым, за исключением случаев, когда srt2 - «ok».Constraint - sql server
0
A
ответ
0
вы можете использовать триггер сценарий (перед выполнением) на t1, который проверяет, когда строка должна быть вставлена в str1, str2, если равен «КИ»
1
Вы не можете использовать SELECT, в ограничении, но пользователь определенная функция разрешена. Таким образом, вы можете создать функцию для извлечения str2 из T2. Вот пример настройки:
create table t1 (id int, str1 varchar(max))
create table t2 (str2 varchar(10))
go
create function dbo.GetStr2() returns varchar(10)
as
begin
declare @retval varchar(10)
select @retval = str2 from t2
return @retval
end
go
alter table t1 add constraint CheckStr2Constraint
check (str1 is null or dbo.GetStr2() = 'ok');
Вы можете проверить это, как:
insert into t2 values ('ok')
insert into t1 values (1,'test') -- Succeeds
insert into t1 values (1,null) -- Succeeds
update t2 set str2 = 'not ok'
insert into t1 values (1,'test') -- Fails
insert into t1 values (1,null) -- Succeeds
Третий ВСТАВИТЬ потерпит неудачу, потому что str2 «не в порядке», и вы вставив непустой строки. Сообщение об ошибке будет выглядеть так:
The INSERT statement conflicted with the CHECK
constraint "CheckStr2Constraint".
Смежные вопросы
- 1. SQL Server 2012 Constraint
- 2. SQL SERVER FK и Constraint
- 3. Значение SQL Server <> Constraint
- 4. Проверить CONSTRAINT Не работает в SQL Server
- 5. SQL Server 2005: Nullable External Key Constraint
- 6. Уникальный Constraint при условии, в SQL Server
- 7. SQL Server - Проверить Constraint "не работает"
- 8. Ошибка FK Constraint Головная боль - SQL Server
- 9. sql unique constraint
- 10. MS SQL Server 2008 Check Constraint и LINQ-To-SQL
- 11. Использование SQL Check Constraint
- 12. Синхронизация SQL Check Constraint
- 13. SQL Constraint-Insert Fails
- 14. SQL Default Constraint
- 15. SQL KEY Constraint Синтаксис
- 16. Constraint с утверждением Sql
- 17. sql regex check constraint
- 18. Oracle Sql Check Constraint
- 19. DB2 SQL Check Constraint
- 20. SQL Server Filtered Index on PK Index/Constraint?
- 21. SQL Server Replication Add Check Constraint в таблице издателей
- 22. SQL Server: скопировать данные таблицы с помощью FK Constraint
- 23. Sql Server 2008 Partitioning + Identity Column Constraint Issue
- 24. SugarCRM Project и SQL Server Constraint Проблема/Ошибка
- 25. SQL Server 2005, Enforce External Key Constraint и Cascade Delete
- 26. SQL Server 2012: Проверка Constraint с Значения по умолчанию
- 27. SQL Server Unique Key Constraint Date/Time Span
- 28. Неправильный синтаксис рядом с ALTER NOCHECK CONSTRAINT - SQL Server 2008
- 29. Constraint добавлено
- 30. SQL Constraint для Принудительно Правило