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

¿Cómo agrego una columna "última modificación" y creada en una tabla de SQL Server?

El created la columna es simple:solo un DATETIME2(3) columna con una restricción predeterminada que se establece cuando se inserta una nueva fila:

Created DATETIME2(3) 
   CONSTRAINT DF_YourTable_Created DEFAULT (SYSDATETIME())

Entonces, cuando inserta una fila en YourTable y no especifique un valor para Created , se establecerá en la fecha y hora actuales.

El modified es un poco más de trabajo, ya que deberá escribir un activador para AFTER UPDATE caso y actualícelo; no puede declarar mediante declaración a SQL Server que haga esto por usted....

Modified DATETIME2(3)

y luego

CREATE TRIGGER updateModified
ON dbo.YourTable
AFTER UPDATE 
AS
   UPDATE dbo.YourTable
   SET modified = SYSDATETIME()
   FROM Inserted i
   WHERE dbo.YourTable.PrimaryKey = i.PrimaryKey

Necesitas unirte a los Inserted pseudo tabla que contiene todas las filas que se actualizaron con su tabla base en su clave principal para esa mesa.

Y tendrás que crear esto AFTER UPDATE activador para cada tabla que desee tener un modified entrada de columna.