Comment obtenir un bon identifiant aléatoire de 10 caractères ?

0000003252     -      22/10/2024

Mercator utilise dans diverses colonnes de la base de données des valeurs aléatoires de 10 caractères (ident). En C#, ces valeurs sont générées par Api.Ident(). En SQL, on utilise fréquemment right(newid(), 10). Cette solution n'est pas optimale parce que newid() renvoie une représentation lisible d'une suite de bytes exprimés selon leur valeur hexadécimale. Dès lors, cette fonction SQL renvoie uniquement les caractères de 0 à 9 et de A à F. c-à-d un jeu de 16 caractères.

La méthode Api.Ident, quant à elle, utilise 36 caractères : A-Z et 0-9.

Utiliser un jeu de caractères plus restreint augmente la probabilité de doublons.

Dès lors, nous recommandons d'utiliser cette syntaxe SQL pour générer un ident :

declare @ident char(10)
exec SP_IDENT @ident output
select @ident

 

Nombre de combinaisons possibles pour 10 caractères sur un jeu de :

  • 16 caractères : 1610 = 1 099 511 627 776
  • 36 caractères : 3610 = 3 656 158 440 062 976


Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)