sql >> Base de Datos >  >> RDS >> Sqlserver

Necesita una columna de fecha y hora en SQL Server que se actualice automáticamente cuando se modifique el registro

SQL Server no tiene una forma de definir un valor predeterminado para UPDATE .

Por lo tanto, debe agregar una columna con un valor predeterminado para insertar:

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

Y agregue un activador en esa tabla:

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

Y sí, debe especificar una columna de identidad para cada activador.

PRECAUCIÓN:tenga cuidado al insertar columnas en tablas donde no conoce el código de la aplicación. Si su aplicación tiene el comando INSERTAR VALORES sin definición de columna, generará errores incluso con el valor predeterminado en las nuevas columnas.