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

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

00000000-0000-0000-0000-000000000000.

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

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

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

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

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

Ответы

Ответ 1

сравните с

cast(cast(0 as binary) as uniqueidentifier)

?

Ответ 2

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

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

Ответ 3

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

Ответ 4

Лучшим решением является использование константы для пустого 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

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

Ответ 5

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

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