uniqueidentifier (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

GUID sur 16 octets.

Notes

Il existe deux manières d’affecter une valeur initiale à une colonne ou à une variable locale du type de données uniqueidentifier :

  • en utilisant les fonctions NEWID ou NEWSEQUENTIALID ;
  • en convertissant à partir d’une constante de chaîne de la forme xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, où chaque x est un chiffre hexadécimal compris dans la plage 0-9 ou a-f. Par exemple, 6F9619FF-8B86-D011-B42D-00C04FC964FF est une valeur uniqueidentifier valide.

Des opérateurs de comparaison peuvent être utilisés avec des valeurs uniqueidentifier. Toutefois, le classement n'est pas effectué par la comparaison des configurations binaires des deux valeurs. Les seules opérations que vous êtes autorisé à effectuer sur une valeur uniqueidentifier sont les comparaisons (=, <>, <, >, <=, >=) et la recherche de valeurs Null (IS NULL et IS NOT NULL). Aucun autre opérateur arithmétique n'est admis. Toutes les propriétés et contraintes de colonnes, à l’exception de la propriété IDENTITY, sont autorisées dans le type de données uniqueidentifier.

Les réplications de fusion et les réplications transactionnelles possédant des abonnements mis à jour utilisent des colonnes uniqueidentifier afin de garantir que les lignes sont identifiées de manière unique au sein des nombreuses copies de la table.

Conversion de données uniqueidentifier

Le type uniqueidentifier est considéré comme un type caractère pour les besoins de la conversion à partir d’une expression de caractères ; il est par conséquent soumis aux règles de troncation pour la conversion en un type caractère. Autrement dit, lorsque des expressions de caractères sont converties en type caractère de taille différente, les valeurs trop longues pour le nouveau type de données sont tronquées. Consultez la section exemples.

Limitations et restrictions

Les outils et fonctionnalités ci-dessous ne prennent pas en charge le type de données uniqueidentifier :

Exemples

L'exemple suivant convertit une valeur uniqueidentifier en type de données char.

DECLARE @myid uniqueidentifier = NEWID();  
SELECT CONVERT(CHAR(255), @myid) AS 'char';  

L'exemple suivant illustre la troncation des données lorsque la valeur est trop longue pour le type de données vers lequel la conversion est effectuée. Étant donné que le type uniqueidentifier est limité à 36 caractères, les caractères qui dépassent cette longueur sont tronqués.

DECLARE @ID NVARCHAR(max) = N'0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong';  
SELECT @ID, CONVERT(uniqueidentifier, @ID) AS TruncatedValue;  

Voici le jeu de résultats obtenu.

String                                       TruncatedValue  
-------------------------------------------- ------------------------------------  
0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong    0E984725-C51C-4BF4-9960-E1C80E27ABA0  
  
(1 row(s) affected)  

Voir aussi

ALTER TABLE (Transact-SQL)
CAST et CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Types de données (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)
NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)
Updatable Subscriptions for Transactional Replication