Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come ottengo informazioni su data/ora da una colonna TIMESTAMP?

TIMESTAMP è un nome sfortunato che il team di SQL Server ha assegnato al tipo di dati. È per la concorrenza e non ha nulla a che fare con la data o l'ora:hanno consigliato di utilizzare il suo alias, ROWVERSION per evitare confusione. Da questo articolo della documentazione in linea, "Nelle istruzioni DDL, usa rowversion invece di timestamp ove possibile."

Sfortunatamente non sarai in grado di ricavare alcun dettaglio di data/ora da ROWVERSION colonna che hai già, ma se questa informazione è importante, dovresti aggiungere le colonne CreatedDate / ModifiedDate, ad esempio:

ALTER TABLE dbo.foo ADD CreatedDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE dbo.foo ADD ModifiedDate DATETIME NULL;

Quindi crea un TRIGGER che si attiva su UPDATE per mantenere aggiornato il valore di ModifiedDate. Potrebbe essere necessario decidere se si desidera che ModifiedDate sia NULL o uguale a CreatedDate all'inizializzazione.