Возможно ли, чтобы столбец, который должен быть автоматически рассчитан самим SQL Server 2012?Автоматически вычисляемый столбец в SQL Server 2012
Например: У меня есть три столбца START_DATE
, END_DATE
и DURATION
.
Я хочу, чтобы получить срок, делая это:
DURATION = END_DATE - START_DATE
Так я получаю длительность в днях.
Возможно ли, чтобы SQL Server 2012 сделал это автоматически при создании записи?
Большое спасибо. И как, например, если мне нужна сегодняшняя дата, как вы выполняете одни и те же вычисления вместо END_DATE, то есть 'сегодняшняя дата - start_date'? – Brian
Что я пробовал вот так: 'ALTER TABLE dbo.users ADD age AS DATEDIFF (YEAR, CAST (GETDATE() AS DATE), date_of_birth) PERSISTED', но я получаю эту ошибку:« Вычисленный столбец «возраст» в табличных пользователях 'не может сохраняться, потому что столбец не является детерминированным.' – Brian
@Brian: использование' GETDATE() 'является проблемой - это недетерминированно, поэтому вы не можете сохранить значение. Если вы ** должны ** использовать 'GETDATE()', то вы должны оставить ключевое слово 'PERSISTED', и значение будет вычисляться каждый раз, когда вы обращаетесь к столбцу –