Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Precisa de uma coluna de data e hora no SQL Server que seja atualizada automaticamente quando o registro for modificado


O SQL Server não tem como definir um valor padrão para UPDATE .

Então você precisa adicionar uma coluna com valor padrão para inserir:
ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

E adicione um gatilho nessa tabela:
CREATE TRIGGER tgr_modstamp
ON **TABLENAME**
AFTER UPDATE AS
  UPDATE **TABLENAME**
  SET ModStamp = GETDATE()
  WHERE **ID** IN (SELECT DISTINCT **ID** FROM Inserted)

E sim, você precisa especificar uma coluna de identidade para cada gatilho.

CUIDADO:tome cuidado ao inserir colunas em tabelas onde você não conhece o código da aplicação. Se seu aplicativo tiver o comando INSERT VALUES sem definição de coluna, ele gerará erros mesmo com valor padrão em novas colunas.