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

в таблице два столбца: billable (бит), billabledate (datetime). Я хочу, чтобы оплачиваемая дата была не нулевой, если billable не нулевой.

Ответы [ 3 ]

2 голосов
/ 05 мая 2009

Добавить проверочное ограничение:

ПРОВЕРКА (оплачиваемое значение не равно NULL и billabledate не равно нулю) ИЛИ (оплачиваемое значение равно нулю)

2 голосов
/ 05 мая 2009

Вам нужно проверить ограничение

ALTER TABLE dbo.Table WITH NOCHECK
ADD CONSTRAINT CK_Table_BusinessRule ПРОВЕРКА (Billable НЕ НЕДЕЙСТВИТЕЛЕН, и BillableDate НЕТ НУЛЬ

http://msdn.microsoft.com/en-us/library/ms179491(SQL.90).aspx

0 голосов
/ 05 мая 2009

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

...