Мне нужно добавить два столбца в таблицу базы данных в SQL Server 2008 R2:
- createTS - дата и время, когда строка вставлена
- updateTS - дата и время обновления строки
У меня есть несколько вопросов:
- Какой тип данных столбца я должен использовать для каждого из них?
-
createTS
должен быть установлен только один раз, когда строка вставлена. Когда я попробовал типdatetime
для этого столбца и добавил значение по умолчанию или привязкуgetdate()
, значение столбца было соответствующим образом установлено. Это лучший способ выполнить цель этой колонки? Я считал тип данныхtimestamp
, но это, на мой взгляд, почти неверное слово! -
updateTS
необходимо установить дату и время момента обновления строки. В SQL Server нет ON UPDATE CURRENT_TIMESTAMP (как в MySQL), поэтому похоже, что мне приходится прибегать к использованию триггера. Правильно ли это и как я буду это делать?
Итак, для всех, кто хотел бы ответить на этот вопрос, есть отправная точка, вот таблица create script:
CREATE TABLE [dbo].[names]
(
[name] [nvarchar](64) NOT NULL,
[createTS] [datetime] NOT NULL CONSTRAINT [DF_names_createTS] DEFAULT (getdate()),
[updateTS] [datetime] NOT NULL,
CONSTRAINT [PK_names] PRIMARY KEY CLUSTERED
(
[name] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]