SQL Server 2005: как поставить ненулевое ограничение на столбец в зависимости от значения в другом столбце?

StackOverflow https://stackoverflow.com/questions/823481

  •  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

Я бы попытался добавить триггер в таблицу после включения и после обновления, чтобы применить это ограничение. Проверьте оплачиваемое значение и заблокируйте вставку / обновление, если оно не равно нулю, а дата платежа равна нулю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top