Comment identifier un uniqueidentifier vide dans SQL Server 2005?
-
20-09-2019 - |
Question
Je reçois uniqueidentifier
dans une procédure stockée qui ressemble à ceci
00000000-0000-0000-0000-000000000000
.
Cela semble être une chose simple, mais comment peut identifier que c'est un uniqueidentifier
vide?
Si je reçois une valeur comme ce DDB72E0C-FC43-4C34-A924-741445153021
je veux faire X
Si je reçois une valeur comme ce que je fais 00000000-0000-0000-0000-000000000000
Y
Y at-il une façon plus élégante puis compter les zéros?
Merci d'avance
La solution
comparer à
cast(cast(0 as binary) as uniqueidentifier)
Autres conseils
Il suffit de créer une variable EmptyGuid et comparer à ce que:
DECLARE @EmptyGuid UniqueIdentifier
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'
IF (@TheGuid = '00000000-0000-0000-0000-000000000000')
SELECT 'Do Y'
ELSE
SELECT 'Do X'
Cela fonctionne également.
DECLARE @EmptyGuid UNIQUEIDENTIFIER = CONVERT(UNIQUEIDENTIFIER, 0x0);
SELECT @EmptyGuid
La meilleure solution est d'utiliser une constante pour le GUID vide
DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'
ou
DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = 0x0
et on les compare simplement
IF @parameter = @EmptyGuid
DO Y
ELSE
DO X
Remarque: vous n'avez pas besoin d'utiliser des moulages et convertis