Как определить пустой uniqueidentifier в SQL Server 2005?

Я uniqueidentifier в хранимую процедуру, которая выглядит так

00000000-0000-0000-0000-000000000000.

это кажется простой вещью, но как можно определить, что это пустой uniqueidentifier?

если я получу такое значение DDB72E0C-FC43-4C34-A924-741445153021 Я хочу сделать X

если я получу такое значение 00000000-0000-0000-0000-000000000000 Я делаю Y

есть ли более элегантный способ подсчета нулей?

спасибо заранее

5 ответов


сравнить

cast(cast(0 as binary) as uniqueidentifier)

?


просто создайте переменную EmptyGuid и сравните с ней:

DECLARE @EmptyGuid UniqueIdentifier
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'

IF (@TheGuid = '00000000-0000-0000-0000-000000000000')
    SELECT 'Do Y'
ELSE
    SELECT 'Do X'

лучшим решением является использование константы для пустого GUID

DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'

или

DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = 0x0

а вы просто сравните их

IF @parameter = @EmptyGuid
    DO Y
ELSE
    DO X

Примечание: вам не нужно использовать слепки и преобразования


Это также работает.

DECLARE @EmptyGuid UNIQUEIDENTIFIER = CONVERT(UNIQUEIDENTIFIER, 0x0);  
SELECT @EmptyGuid