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

Microsoft SQL Server:un modo per sapere quando è stato creato un record?

No.

Devi avere una colonna per questo.

Immagina quanto sarebbero grandi i metadati se avessi bisogno di tenere un record per ogni record per la creazione! Vorresti anche mantenere i metadati sui tuoi metadati in modo da sapere quando i metadati sono stati aggiornati? L'uso dello spazio può aumentare rapidamente.

SQL Server conserva alcune statistiche, ma qualcosa di questo specifico dovrà provenire da un campo definito dall'utente.

Come nota a margine, puoi rendere più difficile manomettere la data sul campo creato se usi una tabella di ricerca. Crea una tabella "TableName_CreateDate" e usa il PK dalla tabella effettiva e un valore di data. La tua data si trova in una posizione separata ed è meno probabile che venga modificata, ma puoi comunque JOIN su di esso per ottenere il tuo ordine. Dovresti creare un trigger per aggiornarlo con nuovi valori.

Se vuoi solo la DATA e non hai bisogno di un valore datetime, puoi fare un ulteriore passo avanti e avere solo una tabella di date e una tabella di ricerca che si unisce a quella. Cioè:

Table->Table.PK + Date.Pk -> DateTable

Ciò farebbe risparmiare molto spazio su disco se hai molte righe (penso 4 byte per riga).