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

Como adiciono uma coluna “última modificação” e criada em uma tabela do SQL Server?


O created coluna é simples - apenas um DATETIME2(3) coluna com uma restrição padrão que é definida quando uma nova linha é inserida:
Created DATETIME2(3) 
   CONSTRAINT DF_YourTable_Created DEFAULT (SYSDATETIME())

Então, quando você insere uma linha em YourTable e não especifique um valor para Created , ele será definido para a data e hora atuais.

O modified é um pouco mais trabalhoso, pois você precisará escrever um gatilho para o AFTER UPDATE case e atualize-o - você não pode dizer declarativamente ao SQL Server para fazer isso por você....
Modified DATETIME2(3)

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

Você precisa participar do Inserted pseudo tabela que contém todas as linhas que foram atualizados com sua tabela base em sua chave primária para essa mesa.

E você terá que criar este AFTER UPDATE gatilho para cada tabela que você deseja ter um modified coluna em.