xhon Ответов: 1

Проверка или ограничение по умолчанию против увеличения значения даты на N дней (INT)


Привет,

Я хотел бы установить ограничение проверки или по умолчанию, чтобы гарантировать, что дата 2 всегда равна дате 1 + 5 дней.

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

Что я уже пробовал:

ALTER TABLE TableName
ADD CONSTRAINT DF_Date2_ExpiringDate DEFAULT Date1 +30 FOR Date2;


ALTER TABLE TableName
ADD CONSTRAINT CK_TableName_Date2Is30DaysAfterDate1
        CHECK (Date2= Date1+ 30);

1 Ответов

Рейтинг:
4

Richard Deeming

Если Date2 всегда через пять дней после этого Date1, тогда вам не нужно хранить Date2 вообще. Просто используйте вычисляемый столбец.

ALTER TABLE TableName
DROP COLUMN Date2;

ALTER TABLE TableName
ADD Date2 As (DateAdd(day, 5, Date1));
Указание вычисляемых столбцов в таблице - SQL Server | Microsoft Docs[^]

Согласно ваш предыдущий вопрос[^], если вам когда-нибудь понадобится Date2 быть чем-то иным, чем Date1 + 5 days, вы не можете добавить a CHECK ограничение к вашему столу.