Проверьте на пустой GUID в SQL

Как я проверяю, является ли аргументом в хранимой процедуре пустой GUID или нет?

47
задан d219 1 November 2018 в 17:51
поделиться

2 ответа

SELECT CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)

Это должно вернуть ваш пустой гид.

... или даже короче, сохраняя одно приведение:

SELECT CAST(0x0 AS UNIQUEIDENTIFIER)

Итак, чтобы проверить это, вы должны сделать

IF @GuidParam = CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)
BEGIN
   --Guid is empty
END
99
ответ дан 26 November 2019 в 19:28
поделиться

Поскольку пустой guid никогда не изменяется, другой очевидный способ - просто использовать 00000000-0000-0000-0000-000000000000 , а не вычислять его.

If @Param = '00000000-0000-0000-0000-000000000000'
...

Или, если в процедуре, вы можете установить параметр, который будет действовать как константа:

Declare @EmptyGuid uniqueidentifier
Set @EmptyGuid = '00000000-0000-0000-0000-000000000000'

Или вы можете создать скалярную определяемую пользователем функцию, которая просто возвращает указанное выше постоянное значение (или пересчитывает его, как в решении Meiscooldude) .

12
ответ дан 26 November 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: