@DeboshiR
Свободу разработчикам!!!

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

При создании таблицы хотелось бы огранить запись в столбце только одним годом а не всей датой. Каким образом это можно сделать? И ещё надо сделать так, чтобы этот год не был больше текущего.
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 2
mahoho
@mahoho
Full stack certified PHP developer.
В SQL Server 2005 нет типа DATE, только DATETIME. Я рекомендую обновиться хотя бы до SQL Server 2008 R2, там есть поле типа YEAR.
Проверка на значение делается так:
-- для поля с типом DATETIME
ALTER TABLE table_name ADD CONSTRAINT check_for_current_year CHECK (YEAR(date_field) <= YEAR(GETDATE()));

-- для поля с типом YEAR
ALTER TABLE table_name ADD CONSTRAINT check_for_current_year CHECK (year_field <= YEAR(GETDATE()));
Ответ написан
Комментировать
landergate
@landergate
IT-шный jack-of-all-trades
Column Datatype: smallint
length: 4

CHECK на "не больше" можно построить по примеру Aleksey Ratnikov с datepart(year,getdate()). Функция DATEPART доступна с MSSQL 2005.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы