كيف يمكنني تحديد uniqueidentifier فارغة في SQL Server 2005؟
-
20-09-2019 - |
سؤال
وأنا اتلقى 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'
وOR
DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = 0x0
وكنت للتو مقارنتها
IF @parameter = @EmptyGuid
DO Y
ELSE
DO X
ملحوظة: لا تحتاج إلى استخدام قوالب والمتحولين
لا تنتمي إلى StackOverflow