2010-06-22 7 views
32

में खाली ग्रिड की जांच करें मैं एसपी खाली मार्गदर्शिका में तर्क कैसे जांचूं या नहीं?एसक्यूएल

उत्तर

74
SELECT CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER) 

यह आपके खाली गाइड को वापस करना चाहिए।

... या यहाँ तक कि छोटे, एक डाली की बचत:

SELECT CAST(0x0 AS UNIQUEIDENTIFIER) 

ताकि जांच करने के लिए, के बाद से खाली GUID कभी नहीं बदलता आप

IF @GuidParam = CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER) 
BEGIN 
    --Guid is empty 
END 
+25

आप इस वैकल्पिक सिंटैक्स का उपयोग करें 2 डाले बजाय 0x0 प्रयोग करने के लिए एक खाली GUID कास्ट (UniqueIdentifier के रूप में 0x0) – Robert

+0

@Robert +1 प्राप्त करने के लिए कर सकता है। – twoleggedhorse

+1

इस पर बेहतर प्रदर्शन क्या है या "अगर @ पैरा = '00000000-0000-0000-0000-000000000000'? –

9

करना होगा, अन्य स्पष्ट तरीका है इसकी गणना करने के बजाय 00000000-0000-0000-0000-000000000000 का उपयोग करने के लिए।

If @Param = '00000000-0000-0000-0000-000000000000' 
... 

या, एक प्रक्रिया में है, तो आप एक पैरामीटर एक निरंतर के रूप में कार्य करने के लिए सेट कर सकते हैं यदि:

Declare @EmptyGuid uniqueidentifier 
Set @EmptyGuid = '00000000-0000-0000-0000-000000000000' 

या आप एक अदिश उपयोगकर्ता परिभाषित समारोह जो केवल ऊपर लगातार मान देता है बना सकते हैं (या इसे मेस्कोलोल्ड समाधान में पुन: गणना करता है)।

1

क्या हम उसकी जांच करने के बारे में रिक्त है:

DECLARE @MyId as UNIQUEIDENTIFIER = (SELECT Id FROM dbo.MyTable WHERE ...) 
IF @MyId IS NULL 
BEGIN 
    RAISERROR ('Id is NULL!', 16, 1) 
    RETURN 
END 
0

घोषित @SupplierDataHubId uniqueidentifier = अशक्त

सेट @ SupplierDataHubId = (dbo.tblSupplierData से HubId का चयन करें जहां fldUpc = '603,259,049,389' या fldEan = '6032590493895555 ') अगर (@SupplierDataHubId शून्य नहीं है)
प्रिंट (' yes ') शुरू करें; अंत

बाकी प्रिंट

'नहीं'