我将uniqueidentifier
加入到存储过程中,看起来像这样
00000000-0000-0000-0000-000000000000
。
这似乎很简单,但如何确定这是一个空白uniqueidentifier
?
如果我得到这样的值DDB72E0C-FC43-4C34-A924-741445153021
我想做X
如果我得到这样的值00000000-0000-0000-0000-000000000000
我做Y
有没有更优雅的方式,然后计算零?
提前致谢
答案 0 :(得分:33)
与
比较cast(cast(0 as binary) as uniqueidentifier)
答案 1 :(得分:4)
只需创建一个EmptyGuid变量并与之进行比较:
DECLARE @EmptyGuid UniqueIdentifier
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'
答案 2 :(得分:3)
IF (@TheGuid = '00000000-0000-0000-0000-000000000000')
SELECT 'Do Y'
ELSE
SELECT 'Do X'
答案 3 :(得分:1)
这也有效。
DECLARE @EmptyGuid UNIQUEIDENTIFIER = CONVERT(UNIQUEIDENTIFIER, 0x0);
SELECT @EmptyGuid
答案 4 :(得分:1)
最佳解决方案是为空GUID使用常量
DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = '00000000-0000-0000-0000-000000000000'
OR
DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = 0x0
你只是比较它们
IF @parameter = @EmptyGuid
DO Y
ELSE
DO X
注意:您不需要使用演员和转换