टीएसक्यूएल Raise त्रुटि गलत वाक्यविन्यास, एमएसडीएन के दिशानिर्देशों के बाद - एसक्यूएल, एसक्यूएल-सर्वर, tsql, sql-server-2016, raiserror

MSDN निम्नलिखित वाक्यविन्यास बताता है:

RAISERROR ( { msg_id | msg_str | @local_variable }
{ ,severity ,state }
[ ,argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]

The msg_str २०४७ वर्णों तक स्ट्रिंग की अपेक्षा करता है लेकिन अब स्ट्रिंग्स को छोटा करता है ।यह भी पैरामीटर प्रतिस्थापन की संभावना है, जो मान द्वारा प्रदान की गई वर्णों की संख्या से आगे संदेश को छोटा कर:

त्रुटि संदेश में अधिकतम २,०४७ वर्ण हो सकते हैं । यदि संदेश में २,०४८ या अधिक वर्ण हैं, तो केवल प्रथम २,०४४ प्रदर्शित होते हैं और कोई दीर्घवृत्त संदेश छोटा किया गया है कि इंगित करने के लिए जोड़ा गया है ।ध्यान दें कि प्रतिस्थापन पैरामीटर से अधिक वर्ण का उपभोग आउटपुट दिखाता है क्योंकि आंतरिक संग्रह व्यवहार ।उदाहरण के लिए, 2 के असाइन किए गए मान के साथ% d का प्रतिस्थापन पैरामीटर वास्तव में संदेश स्ट्रिंग में एक वर्ण का उत्पादन करता है लेकिन आंतरिक रूप से संग्रहण के तीन अतिरिक्त वर्ण भी लेता है ।यह संग्रहण आवश्यकता संदेश आउटपुट के लिए उपलब्ध वर्णों की संख्या घटाता है ।जब msg_str निर्दिष्ट किया जाता है, तो RAISERROR त्रुटि संदेश ५०००० की त्रुटि संख्या के साथ उठाती है ।

The severity 0 से 25 के बीच की संख्या की अपेक्षा करता है, लेकिन अंय संख्याओं को ठीक करता है:

0 से 18 तक गंभीरता स्तर किसी भी उपयोगकर्ता द्वारा निर्दिष्ट किया जा सकता है ।गंभीरता स्तर से 19 से 25 केवल sysadmin के सदस्यों द्वारा निर्दिष्ट किया जा सकता सर्वर रोल या परिवर्तन ट्रेस अनुमतियों के साथ उपयोगकर्ता निश्चित ।गंभीरता के स्तर से 19 के माध्यम से 25 के लिए, के साथ लॉग विकल्प आवश्यक है ।0 से कम गंभीरता स्तर 0 के रूप में समझा रहे हैं । 25 से अधिक गंभीरता स्तर 25 के रूप में व्याख्या कर रहे हैं ।

The state 0 २५५ के लिए मान की अपेक्षा करता है, लेकिन शून्य मान सही करता है:

[स्थिति] 0 से 255 तक एक पूर्णांक है. ऋणात्मक मान 1 के लिए डिफ़ॉल्ट है ।२५५ से बड़े मान का उपयोग नहीं किया जाना चाहिए ।


इस मुद्दे

जब मैं इन क्वेरीज़ चलाने मैं निंन त्रुटियां प्राप्त:

RAISEERROR("Test", 20, 1);

संदेश १०२, स्तर 15, स्थिति 1, पंक्ति 1

"परीक्षण" के पास ग़लत सिंटैक्स ।


DECLARE @err_message nvarchar(255);
SET @err_message = "Test";
RAISEERROR(@err_message, 20, 1);

संदेश १०२, स्तर 15, स्थिति 1, पंक्ति 3

"RAISEERROR" के पास ग़लत सिंटैक्स ।


मैं विभिंन अंय प्रश्नों को निष्पादित कर सकते है बस ठीक है । जैसे.:

THROW 50001, "Test", 1;

संदेश ५०००१, स्तर 16, स्थिति 1, पंक्ति 1

परीक्षा


और जानकारी

SELECT @@VERSION यह उत्पादन:

microsoft SQL सर्वर २०१६ (RTM-GDR) (KB3194716)-13.0.1722.0 (X64) सित २६ २०१६ 13:17:23 Windows ८.१ Pro ६.३ (बिल्ड ९६००:) पर कॉपीराइट (c) microsoft Corporation एक्सप्रेस संस्करण (६४-बिट)

और MSDN सिंटैक्स के लिए किया गया था "एसक्यूएल सर्वर (2008 से शुरू)"और लिखने के रूप में, लेख अद्यतन किया गया था October 19, 2016, जो महीनों SQL सर्वर संस्करण के रिलीज़ के बाद मैं चला रहा है ।

यहाँ क्या चल रहा है?

उत्तर:

उत्तर № 1 के लिए 14

डॉक्स:

MSDN निंन सिंटैक्स बताता है:

RAISERROR

आपका आदेश:

र्ािेंत्रुटि ("परीक्षण", 20, 1);

मैं हूँ हमेशा यह गलती कर रहा है । आदेश "त्रुटि बढ़ा" नहीं है, बल्कि "र्ािें त्रुटि" ।मैं डॉन "टी पता है क्यों, लेकिन हम" इसके साथ अटक पुनः.. ।


संबंधित सवाल
सबसे लोकप्रिय