Захват метки времени INSERT в таблице SQL Server

Опубликовано: 30 Ноября, 2021

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

Захватите метку времени вставленных строк в таблице с ограничением DEFAULT в SQL Server.

Используйте ограничение DEFAULT при создании таблицы:

Синтаксис:

 CREATE TABLE TableName (ColumName INT, ColumnDateTime DATETIME DEFAULT CURRENT_TIMESTAMP)
ИДТИ

Пример:

Создадим таблицу с именем GeekTab.

 СОЗДАТЬ ТАБЛИЦУ GeekTab (ID INT, InDtTm DATETIME DEFAULT CURRENT_TIMESTAMP);
ИДТИ

Вставим несколько значений в таблицу.

 ВСТАВИТЬ ЗНАЧЕНИЯ GeekTab (ID) (1), (2); 
ИДТИ
 ВСТАВИТЬ В ЗНАЧЕНИЯ GeekTab (ID) (3), (4); 
ИДТИ

Теперь давайте выберем значение из таблицы.

 ВЫБРАТЬ * ИЗ GeekTab;
ИДТИ

Выход:

Я БЫ InDtTm
1 2020-12-30 13: 08: 54.193
2 2020-12-30 13: 08: 54.193
3 2020-12-30 13: 10: 53.163
4 2020-12-30 13: 10: 53.163

Заключение:

Когда мы выбираем значение из таблицы GeekTab , мы могли видеть, что у него есть текущая временная метка в таблице в столбце InDtTm. Это потому, что столбец InDtTm был создан с DATETIME DEFAULT CURRENT_TIMESTAMP.

Пример на основе сценария:

Предположим, у нас есть таблица «EmployeeTab», каждый раз, когда новый сотрудник присоединяется к компании, в таблицу вставляется новая запись:

 СОЗДАТЬ ТАБЛИЦУ EmployeeTab (имя varchar (100), ID INT, Location varchar (100),
InDtTm DATETIME DEFAULT CURRENT_TIMESTAMP);
 ВЫБЕРИТЕ имя, идентификатор, местоположение ОТ EmployeeTab;
Имя Я БЫ Место расположения
Анкит 234 Дели
Четан 456 Нойда
Хуши 549 Нойда
Микеш 654 Дели
Варун 876 Нойда
Капил 650 Дели

Чтобы получить дату и время вставки для каждой записи как 'JoinDate', можно использовать следующий запрос:

 ВЫБЕРИТЕ имя, идентификатор, расположение, InDtTm как JoinDate ОТ EmployeeTab;
Имя Я БЫ Место расположения Дате вступления
Анкит 234 Дели 2019-11-24 10: 10: 53.163
Четан 456 Нойда 2018-07-14 10: 12: 34.163
Хуши 549 Нойда 2019-05-04 10: 15: 43.163
Микеш 654 Дели 2018-09-21 10: 13: 13.163
Варун 876 Нойда 2019-10-24 10: 11: 33.163
Капил 650 Дели 2018-12-14 10: 10: 53.163

Примечание. При использовании этой функции есть одно исключение: если кто-либо вставит явное значение в столбец ColumnDateTime, столбец будет иметь только что вставленное значение, а не значение по умолчанию.