मैं एक ही सवाल यह है कि यही वजह है कि मैं इस पोस्ट भर में ठोकर खाई थी। जो मैं देख सकता हूं उससे वास्तव में एक अंतर होता है और दो मामलों के बीच वर्तनी एकमात्र चीज नहीं है। ये दो कार्य उपयोग के कारण समकक्ष नहीं हैं।
लिंक और रंग
- RAISERROR - एक MSDN लिंक गया है और यह SSMS में सियान/नीले रंग का
- RAISEERROR - मैं क्या मिल सकता से एक MSDN लिंक नहीं है अभी और यह SSMS में मैजेंटा रंग का
क्रेडिट जहाँ क्रेडिट कारण है - रंग अवलोकन रा था ऊपर दिए गए प्रश्न के तहत टिप्पणियों में उपयोगकर्ता Sahuagin द्वारा पहले से ही स्वीकृत है।
आप SQL Server 2012 का उपयोग कर रहे हैं?
इससे पहले कि मैं आगे बढ़ना मुझे लगता है कि यह राज्य के लिए है कि यदि आप SQL सर्वर 2012 या अधिक उपयोग कर रहे हैं, RAISERRROR प्रयोग न करें उचित है! आपको THROW का उपयोग करना चाहिए।
तो क्या अंतर है?
आप एक इनलाइन कथन में RAISERROR (नीला) का उपयोग कर सकते हैं, बनाम RAISEERROR (magenta) का उपयोग करके जो विभिन्न कोड ब्लॉक के अंदर निहित होने पर निर्भर करता है; लौटाई गई त्रुटि के आधार पर। सटीक वाक्यविन्यास त्रुटि निम्न है:
'RAISEERROR' के पास गलत वाक्यविन्यास। रूपांतरण की उम्मीद, डायलॉग, वितरित या हस्तांतरण।
RAISERROR उदाहरण (एक ई - नीला)
DECLARE @foo varchar(200)
SET @foo = ''
IF NULLIF(@foo, '') IS NULL
BEGIN
-- To fix this line, remove one "E" to read RAISERROR
RAISEERROR('Not enough Vespene Gas!', 16, 1);
RETURN -- This is required otherwise execution will continue!
END
-- You need the RETURN above or this will execute
SELECT Critical_TSqlLine = 1;
अब अगर आप सिर्फ एक 'ई' उपरोक्त कोड से हटा दें, कि ठीक से काम करेंगे। मैंने निष्पादन के परिणाम प्रदान नहीं किए, लेकिन यदि आप एसएसएमएस खोलते हैं और इसे ड्रॉप और निष्पादित करते हैं तो मैं गारंटी देता हूं कि यह काम करेगा।
RAISEERROR उदाहरण (दो Es - मैजंटा)
मैं कैसे समारोह के इस संस्करण का उपयोग करने के लिए और मैं एक उदाहरण है जहां यह वास्तव में काम करेंगे प्रदान नहीं कर सकते पता लगाने की कोशिश पूरी तरह से बहुत अधिक समय बिताया। मैंने कनवर्सन, डायलॉग, डिस्ट्रिब्यूटेड या ट्रांज़ेक्शन का उपयोग करने में देखा और मुझे काम करने के लिए वाक्यविन्यास नहीं मिला। लंबी कहानी छोटी, इस संस्करण के साथ खुद को चिंता न करें केवल एक ई संस्करण का उपयोग करें। आप में से उन लोगों के लिए जो SQL Server 2012 का उपयोग कर रहे हैं, इससे आपको किसी भी तरह चिंता नहीं करनी चाहिए।
वास्तव में मुझे क्या भ्रमित कर रहा था यह है कि एसएसएमएस रंग 'रायसरर' गुलाबी और 'रेज़रर' नीला रंग। –