timestamp (SQL Server Compact)

Type de données qui expose des nombres binaires à caractère unique générés automatiquement dans une base de données. rowversion et timestamp sont des synonymes de type de données. rowversion sert généralement de mécanisme d'insertion d'information de version dans les lignes de la table. La taille de stockage est de 8 octets. Le type de données rowversion est un numéro à incrémentation qui ne conserve pas de date ou d'heure. Pour enregistrer une date ou heure, utilisez un type de données datetime.

Notes

Les caractéristiques du type de données rowversion sont les suivantes :

  • Une table ne peut contenir qu'une seule colonne rowversion.

  • La valeur de la colonne rowversion est mise à jour chaque fois qu'une ligne contenant une colonne rowversion est insérée ou mise à jour. Il en résulte qu'une colonne rowversion est une piètre candidate pour les clés, notamment les clés primaires.

  • rowversion est une colonne en lecture seule et ne peut pas être mise à jour.

  • rowversion est unique dans la base de données.

  • Pour renvoyer la valeur rowversion en cours pour une base de données, utilisez la commande @@DBTS.

Important

En cas de restauration d'une transaction ou d'échec de la validation, le compteur rowversion ne peut pas revenir à l'ancienne valeur. Cela est interdit car si d'autres transactions avaient lieu en même temps, la réinitialisation du compteur risquerait d'engendrer des problèmes. Pour trouver la valeur actuelle de rowversion, vous pouvez l'interroger à l'aide de @@DBTS. Durant la réplication entre SQL Server vers SQL Server Compact, ou vice-versa, les colonnes timestamp ne sont pas répliquées d'une base de données à une autre. Cela permet de garantir le caractère unique de timestamp. Une valeur copiée peut entrer en conflit avec une valeur existante d'une ligne de données, ou avec une valeur future.

Exemples

Si vous utilisez le type de données timestamp, il existe une différence dans l'instruction de requête écrite pour SQL Server et SQL Server Compact. Dans SQL Server, le nom de colonne est facultatif si vous utilisez le type de données timestamp. Toutefois, dans SQL Server Compact, le nom de colonne est obligatoire.

Si vous utilisez le type de données rowversion, vous devez toujours spécifier le nom de colonne, que vous utilisiez SQL Server ou SQL Server Compact. Les exemples suivants illustrent les requêtes qui utilisent le mot clé timestamp et rowversion.

SQL Server

SQL Server Compact 3.5

Requête timestamp

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp);

Requête timestamp

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, c3 timestamp);

Requête rowversion

Create table t1 (c1 int PRIMARY KEY, c2 nvarchar(50), c3 rowversion);

Requête rowversion

Create table t1 (c1 int PRIMARY KEY, c2 nvarchar(50), c3 rowversion);

Voir aussi

Référence

@@DBTS (SQL Server Compact)