我正在uniqueidentifier
进入一个看起来像这样的存储过程
00000000-0000-0000-0000-000000000000
.
这似乎是一件简单的事情,但如何确定这是一个空白uniqueidentifier
?
如果我得到这样的值,DDB72E0C-FC43-4C34-A924-741445153021
我想做 X
如果我得到这样的值,00000000-0000-0000-0000-000000000000
我会做 Y
有没有比数零更优雅的方法?
提前致谢
我正在uniqueidentifier
进入一个看起来像这样的存储过程
00000000-0000-0000-0000-000000000000
.
这似乎是一件简单的事情,但如何确定这是一个空白uniqueidentifier
?
如果我得到这样的值,DDB72E0C-FC43-4C34-A924-741445153021
我想做 X
如果我得到这样的值,00000000-0000-0000-0000-000000000000
我会做 Y
有没有比数零更优雅的方法?
提前致谢
相比于
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'
这也有效。
DECLARE @EmptyGuid UNIQUEIDENTIFIER = CONVERT(UNIQUEIDENTIFIER, 0x0);
SELECT @EmptyGuid
最佳解决方案是为空 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
注意:您不需要使用强制转换和转换