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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top