Come faccio a individuare un uniqueidentifier vuoto in SQL Server 2005?
-
20-09-2019 - |
Domanda
Sono sempre un uniqueidentifier
in una stored procedure che assomiglia a questo
00000000-0000-0000-0000-000000000000
.
Questa sembra una cosa semplice, ma come può identificare che questo è un uniqueidentifier
vuota?
Se ricevo un valore come questo DDB72E0C-FC43-4C34-A924-741445153021
voglio fare X
Se ricevo un valore come questo 00000000-0000-0000-0000-000000000000
faccio Y
C'è un modo più elegante poi contando gli zeri?
Grazie in anticipo
Soluzione
confrontare a
cast(cast(0 as binary) as uniqueidentifier)
Altri suggerimenti
Basta creare una variabile EmptyGuid e confrontare con quanto segue:
DECLARE @EmptyGuid UniqueIdentifier
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'
IF (@TheGuid = '00000000-0000-0000-0000-000000000000')
SELECT 'Do Y'
ELSE
SELECT 'Do X'
Questo funziona anche.
DECLARE @EmptyGuid UNIQUEIDENTIFIER = CONVERT(UNIQUEIDENTIFIER, 0x0);
SELECT @EmptyGuid
migliore soluzione è quella di utilizzare una costante per il vuoto GUID
DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'
o
DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = 0x0
e basta confrontarle
IF @parameter = @EmptyGuid
DO Y
ELSE
DO X
Nota: non è necessario utilizzare calchi e convertiti