SQL Server 2005: как поставить ненулевое ограничение на столбец в зависимости от значения в другом столбце?
-
05-07-2019 - |
Вопрос
в таблице два столбца: billable (бит), billabledate (datetime). Я хочу, чтобы оплачиваемая дата не была нулевой, если billable не равна нулю.
Решение
Добавить проверочное ограничение:
ПРОВЕРЬТЕ (оплачиваемое значение не равно NULL, а значение оплачиваемого значения не равно NULL) ИЛИ (оплачиваемое значение равно NULL)
Другие советы
Вам нужно проверить ограничение
ALTER TABLE dbo.Table с NOCHECK
ADD CONSTRAINT CK_Table_BusinessRule
ПРОВЕРЬТЕ (Billable НЕ НЕДЕЙСТВИТЕЛЕН, а BillableDate НЕТ НУЛЕВ)
http://msdn.microsoft.com/ ан-нас / библиотека / ms179491 (SQL.90) .aspx
Я бы попытался добавить триггер в таблицу после включения и после обновления, чтобы применить это ограничение. Проверьте оплачиваемое значение и заблокируйте вставку / обновление, если оно не равно нулю, а дата платежа равна нулю.