declare @uu uniqueidentifier = 'C50B0567-F8CC-4219-A1E1-91C97BD9AE1B'
select @uu
declare @zaza bigint = (select convert(bigint, convert (varbinary(8), @uu, 1)))
select @zaza
select CONVERT(uniqueidentifier , convert(varbinary(16) , @zaza , 1))
Pensavo di avere un modo rapido per convertire i valori di Identificatore univoco in un Big Int e viceversa. Ma c'è un problema nel mio secondo convertito. Qualcuno può commentare il modo giusto per convertire completamente un GUID in un numero e tornare? Ricevo solo parte del GUID e non tutto quando provo a convertirlo dalla rappresentazione numerica al GUID originale.Convertire da UniqueIdentifier a BigInt e Back?
Voglio passare un numero intero (penso che sarebbe classificato come "Large BigInt" in MSSQL?) Su un sistema remoto e utilizzare solo caratteri 0-9 e ottenere comunque l'univocità casuale di NewId().
'uniqueidentifier' è 16 byte. Un "bigint" è solo 8. Questo non funzionerà. Perché stai provando a fare questo? –
Cosa significherebbe una tale conversione ??? – Oded
Ho modificato nuovamente la domanda originale per risolvere questo problema, ho bisogno di scambiare dati con un sistema che accetta numeri ma non codici alfanumerici e ho pensato che un GUID che non sembrava un GUID avrebbe funzionato. – Snowy