Les types de données d'identifiant global (GlobalID) et GUID contiennent des chaînes de registre constituées de 36 caractères placés entre des accolades. Ces chaînes identifient de manière unique une entité ou une ligne de table dans une géodatabase et entre plusieurs géodatabases. Les identifiants globaux permettent de conserver l'unicité des enregistrements dans des réplicas monodirectionnels et bidirectionnels de géodatabase et dans les données non versionnées utilisées dans les cartes hors connexion. Les GUID peuvent être ajoutés à n'importe quelle table.
Si la table que vous souhaitez mettre à jour participe à la réplication ou à l'utilisation de cartes hors connexion ou si elle contient un GUID, vous devez insérer une valeur unique dans la colonne d'identifiant global ou GUID lorsque vous insérez un nouvel enregistrement dans la table à l'aide de SQL. Pour cela, vous pouvez utiliser la fonction newid().
Lorsque vous mettez à jour une table non versionnée qui n'est pas activée pour l'archivage, faites appel à cette fonction pour insérer directement l'identifiant dans la table. Lorsque vous mettez à jour une table non versionnée qui est activée pour l'archivage, faites appel à la fonction pour insérer directement l'identifiant dans la vue d'archive de la table. Lorsque vous mettez à jour une table versionnée, faites appel à la fonction pour insérer une valeur dans la vue versionnée de la table.
- Connectez-vous à SQL Server Management Studio en tant qu'utilisateur autorisé à modifier la table.
Si vous effectuez une mise à jour via une vue versionnée ou d'archive, l'utilisateur doit également détenir des privilèges de modification de la vue.
- Ouvrez une nouvelle fenêtre de requête et connectez-vous à la base de données qui contient la table ou la vue à modifier.
- Utilisez la fonction newid() pour renseigner la colonne d'identifiant global ou GUID lorsque vous insérez un enregistrement dans la table.
INSERT INTO jason.assets (asset_id, globalid) VALUES (57, newid())
Vous pouvez également utiliser la procédure stockée Next_GlobalID pour obtenir la prochaine valeur d'identifiant. Toutefois, vous ne pouvez pas imbriquer une procédure stockée dans une instruction INSERT. Par conséquent, vous devez appeler la procédure stockée pour obtenir la prochaine valeur disponible, puis utiliser la valeur résultante pour l'inclure dans votre instruction INSERT. Cette option est utile si vous souhaitez afficher la valeur avant de l'insérer.