Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Нуждаете се от колона за дата и час в SQL Server, която автоматично се актуализира, когато записът бъде променен

SQL Server няма начин да дефинира стойност по подразбиране за UPDATE .

Така че трябва да добавите колона със стойност по подразбиране за вмъкване:

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

И добавете тригер към тази таблица:

CREATE TRIGGER tgr_modstamp
ON **TABLENAME**
AFTER UPDATE AS
  UPDATE **TABLENAME**
  SET ModStamp = GETDATE()
  WHERE **ID** IN (SELECT DISTINCT **ID** FROM Inserted)

И да, трябва да посочите колона за идентичност за всеки тригер.

ВНИМАНИЕ:внимавайте, когато вмъквате колони в таблици, където не знаете кода на приложението. Ако приложението ви има команда INSERT VALUES без дефиниция на колона, то ще доведе до грешки дори със стойност по подразбиране за нови колони.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ПРОВЕРЯТЕ Ограниченията в SQL Server

  2. Как да върнете дублирани ключове от JSON документ в SQL Server

  3. Как да заменя (нула) стойности с 0 изход в PIVOT

  4. Съхранение на XML данни в SQL Server

  5. SQL Server BCP експортира повреден файл?