Я хочу ограничить столбец, что он может иметь только значение, когда другой столбец имеет значение.Ограничение проверки SQL на столбец, ссылающееся на другие столбцы
пример: (это не работает)
create table testConstraint (
col1 int not null identity(1, 1) primary key,
col2 int,
col3 int check (col2 is not null),
col4 int)
Это невозможно, потому что он не может ссылаться на другую колонку. Ошибка:
Column CHECK constraint for column 'col3' references another column, table 'testConstraint'.
Другая попытка была: (также не работает)
create table testConstraint (
col1 int not null identity(1, 1) primary key,
col2 int,
col3 int,
col4 int)
GO
alter table testConstraint add constraint ck_columnNotNull check (case when col2 is null then col3 is null end)
GO
Кто-нибудь есть идеи, как это было бы возможно с ограничением?
для разработки: col2 - это внешний ключ, который позволяет использовать NULL. Но col3 может иметь значение только в том случае, если col2 имеет значение. Я знаю, что это возможно с помощью триггера, но я надеялся, что это будет возможно с ограничением. Я считаю, что триггеры более опасны, чем ограничения. –