Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Microsoft SQL Server :Un moyen de savoir quand un enregistrement a été créé ?

Non.

Vous devez avoir une colonne pour cela.

Imaginez la taille des métadonnées si vous deviez conserver un enregistrement pour chaque enregistrement pour la création ! Souhaitez-vous également conserver des métadonnées sur vos métadonnées afin de savoir quand les métadonnées ont été mises à jour ? L'utilisation de l'espace peut rapidement augmenter.

SQL Server conserve certaines statistiques, mais quelque chose d'aussi spécifique devra provenir d'un champ défini par l'utilisateur.

En remarque, vous pouvez rendre plus difficile la falsification de la date sur votre champ créé si vous utilisez une table de recherche. Créez une table "TableName_CreateDate" et utilisez le PK de votre table réelle et une valeur de date. Votre date se trouve dans un emplacement séparé et est moins susceptible d'être modifiée, mais vous pouvez toujours JOIN dessus pour recevoir votre commande. Vous auriez besoin de créer un déclencheur pour le mettre à jour avec de nouvelles valeurs.

Si vous souhaitez uniquement la DATE et n'avez pas besoin d'une valeur datetime, vous pouvez aller plus loin et avoir simplement une table de dates et une table de recherche qui se joint à cela. C'est-à-dire :

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

Cela permettrait d'économiser beaucoup d'espace disque si vous avez beaucoup de lignes (4 octets par ligne, je pense).