Mercator gebruikt in verschillende kolommen van de database willekeurige waarden van 10 tekens (ident). In C# worden deze waarden gegenereerd door Api.Ident(). In SQL wordt vaak right(newid(), 10) gebruikt. Deze oplossing is echter niet ideaal omdat newid() een hexadecimale weergave van een byte-reeks retourneert. Hierdoor worden alleen de tekens 0-9 en A-F gebruikt, wat neerkomt op slechts 16 verschillende tekens.
De methode Api.Ident, daarentegen, gebruikt 36 tekens: A-Z en 0-9.
Het gebruik van een kleiner aantal tekens verhoogt de kans op duplicaten.
Daarom raden we aan om de volgende SQL-syntaxis te gebruiker om een ident te genereren:
declare @ident char(10)
exec SP_IDENT @ident output
select @ident
Aantal mogelijke combinaties voor 10 tekens bij gebruik van:
- 16 tekens: 1610 = 1 099 511 627 776
- 36 tekens: 3610 = 3 656 158 440 062 976