Ответ 1
Да, вы можете использовать ограничение CHECK:
ALTER TABLE YourTable
ADD CONSTRAINT ConstraintName CHECK (col1 is null or col2 is null)
В вашем комментарии, если много столбцов являются эксклюзивными, вы можете проверить их следующим образом:
case when col1 is null then 0 else 1 end +
case when col2 is null then 0 else 1 end +
case when col3 is null then 0 else 1 end +
case when col4 is null then 0 else 1 end
= 1
Это говорит о том, что один из четырех столбцов должен содержать значение. Если все они могут быть NULL, просто проверьте <= 1
.