Можно ли наложить ограничение на таблицу, в то время как столбец не может быть нулевым, если другой указанный столбец не равен нулю?

#sql-server

#sql-server

Вопрос:

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

Ответ №1:

Это похоже на явный случай неразумной перегрузки двух разных типов объектов в одну и ту же таблицу. Решение состоит в том, чтобы поместить два рассматриваемых атрибута в новую таблицу (и сделать их ненулевыми). Обратитесь к вашей текущей таблице с помощью внешнего ключа в новой таблице.