2009-06-01 7 views
2

Je souhaite générer des nombres hexadécimaux uniques dans SQL. Comment puis-je faire ceci?Création d'un nombre hexadécimal dans SQL

Si vous savez comment générer en C#, veuillez également l'inclure.

+2

Je ressens le besoin de souligner ... un nombre hexadécimal est juste comme un nombre décimal. Ce sont des chiffres. La seule différence est de savoir comment vous décidez de le représenter ou de l'afficher. –

+1

Je suis d'accord avec le commentaire de Tom. Il semble y avoir une sorte de malentendu ici ... Pourquoi est-ce que vous avez besoin d'un nombre sous forme hexadécimale? –

+0

Son exigence de l'utilisateur que nous devrions générer automatiquement un nombre HexaDecimal comme ID unique pas une valeur entière. – Waheed

Répondre

2

SQL Server:

SELECT NEWID() 

Oracle:

SELECT SYS_GUID() 
FROM dual 

MySQL:

SELECT UUID() 

Dans PostgreSQL, vous devrez utiliser une fonction externe, même si elle est de type UUID.

2

Dans SQL Server: newid()

En C#: System.Guid.NewGuid()

Ces vous obtenez GUID's, qui sont uniques, les numéros hexadécimaux; Cependant, ils ont tendance à avoir des tirets (-) au milieu d'eux, donc vous devrez peut-être faire un peu d'analyse de chaînes pour obtenir ce que vous voulez. A part ça, cependant, cela devrait marcher pour vous.

1

Vous pouvez utiliser une colonne IDENTITY entier puis un Conver que Hex en utilisant

CONVERT(varbinary(8), MyTable.MyId) 
+1

Devrait être varbinary (8). Aussi, question pour l'OP: Cela vous donne un numéro unique pour cette table. Si vous voulez simplement un numéro hexadécimal unique pour identifier une ligne dans une table, utilisez celui-ci - beaucoup plus facile à gérer et à saisir pour les requêtes manuelles. – Eric

Questions connexes