如何在SQL Server 2005中标识空白唯一标识符?

时间:2009-12-18 22:01:33

标签: sql-server sql-server-2005 uniqueidentifier uuid

我将uniqueidentifier加入到存储过程中,看起来像这样

00000000-0000-0000-0000-000000000000

这似乎很简单,但如何确定这是一个空白uniqueidentifier

如果我得到这样的值DDB72E0C-FC43-4C34-A924-741445153021我想做X

如果我得到这样的值00000000-0000-0000-0000-000000000000我做Y

有没有更优雅的方式,然后计算零?

提前致谢

5 个答案:

答案 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

注意:您不需要使用演员和转换