質問

私はこのようになりますストアドプロシージャにuniqueidentifierを取得しています。

00000000-0000-0000-0000-000000000000ます。

これは単純なことのように思えるが、どのようにこれが空白uniqueidentifierであることを識別することができますか?

私が取得する場合、私はXをしたい、このようなDDB72E0C-FC43-4C34-A924-741445153021

私はこの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

注:あなたはキャストや変換を使用する必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top