@@DBTS |
Horodatage de base de données |
|---|---|
| SQL Server | Microsoft SQL Server |
Syntaxe
| @@DBTS |
Description
Cette fonction permet de retourner la valeur du type de données d'horodatage actuel pour la base de données actuelle. La base de données actuelle aura une valeur d'horodatage unique garantie.
Remarques
- Retourne la dernière valeur utilisée par une colonne timestamp : La fonction @@DBTS renvoie la valeur binaire la plus récente générée dans la base de données par une colonne de type timestamp (ou rowversion). Cela permet de connaître l'état d'avancement global des modifications de données, utile pour des mécanismes de détection de changement.
- N'est pas liée à une table spécifique&nbps;: Contrairement à ce qu'on pourrait croire, @@DBTS ne se limite pas à une table donnée : elle reflète la dernière valeur timestamp générée n'importe où dans la base de données. Une seule modification dans une table contenant une colonne timestamp peut suffire à faire évoluer cette valeur.
- Utile pour les stratégies de réplication ou de suivi de modifications : Cette fonction est souvent utilisée dans les systèmes de réplication ou d'intégration de données pour détecter s'il y a eu des changements dans la base. En stockant une valeur précédente de @@DBTS, on peut détecter toute activité d'écriture s'étant produite depuis.
- Valeur automatiquement incrémentée par SQL Server : SQL Server gère automatiquement l'incrémentation de la valeur timestamp (ou rowversion). Chaque fois qu'une ligne avec une colonne timestamp est modifiée, une nouvelle valeur unique et plus élevée est générée. @@DBTS permet donc de suivre cette progression.
- La fonction est spécifique à la base en cours : La valeur retournée par @@DBTS correspond uniquement à la base de données actuellement active dans le contexte de la requête. Elle ne donne pas d'informations sur les timestamp d'autres bases du même serveur SQL.
- Ne doit pas être utilisée pour représenter une date réelle : Malgré son nom historique (timestamp), cette valeur n'est pas une date ou une heure. Il s'agit d'un nombre binaire croissant. Son usage est technique, pour la gestion de versions de lignes, et non pour enregistrer des horodatages humains comme GETDATE() ou SYSDATETIME().
- La conversion explicite est souvent nécessaire pour le manipuler : Étant une valeur binaire (varbinary(8)), la valeur retournée par @@DBTS peut nécessiter une conversion (CAST ou CONVERT) si elle doit être affichée, comparée, ou utilisée dans des clauses logiques, notamment dans des scripts de synchronisation ou de journalisation.
- Remplacée par rowversion, mais toujours utilisée : Depuis SQL Server 2005, le mot-clef timestamp est obsolète et remplacé par rowversion. Cependant, @@DBTS reste fonctionnelle et continue d'être utilisée dans des systèmes hérités ou dans des scénarios spécifiques de suivi de modifications automatisées.
Dernière mise à jour : Jeudi, le 23 Septembre 2021