2012-11-27 18 views
9

SQLGetDiagRec एक मूल त्रुटि कोड देता है। क्या SQL सर्वर 2012 के त्रुटि कोडों का कहीं भी कोई अवलोकन है? मुझे एमएसडीएन पर कुछ भी नहीं मिला।क्या सभी SQL Server 2012 त्रुटि कोड का कोई अवलोकन है?

+0

https://technet.microsoft.com/en-us/library/cc645603(v=sql.105)। एएसपीएक्स –

उत्तर

18
use master 
select * from sysmessages 
+0

संदेश प्राप्त करने के लिए डेटाबेस में देखना वास्तव में एक विकल्प नहीं है। शायद डेटाबेस अब उपलब्ध नहीं है। तो मुझे वास्तव में त्रुटि कोड की एक सूची की आवश्यकता है जिसे मैं कोड में संभाल सकता हूं। – Antineutrino

+0

डेटाबेस में त्रुटि संदेशों की सूची एक स्थिर सूची है। आप त्रुटि कोड और संबंधित संदेशों की पूरी सूची देखने के लिए SQL सर्वर स्थापना पर क्वेरी निष्पादित कर सकते हैं। हालांकि आप चाहें संभालने के लिए कोड में उस सूची से संदेश_आईड्स का उपयोग कर सकते हैं। – Travis

3

मैं इंटरनेट में व्यक्तिगत कोड की एक सूची नहीं ढूंढ पा रहा हूं। हालांकि मुझे एमएसडीएन पर गंभीरता स्तर here की एक सूची मिली। वे इस प्रकार हैं:

गंभीरता स्तर/विवरण

  • 0-9: सूचनात्मक संदेश जिन पर स्थिति की जानकारी वापसी या त्रुटियों कि गंभीर नहीं हैं रिपोर्ट। डाटाबेस इंजन सिस्टम 0 से 9 0 की गंभीरता वाली त्रुटियों को नहीं बढ़ाता है।
  • 10: सूचनात्मक संदेश जो स्थिति की स्थिति या रिपोर्ट त्रुटियों को गंभीर नहीं करते हैं। संगतता कारणों के लिए, डाटाबेस इंजन कॉलिंग एप्लिकेशन पर त्रुटि जानकारी लौटने से पहले गंभीरता 0 गंभीरता से 0 में परिवर्तित करता है।
  • 11-16: त्रुटियों को इंगित करें जिन्हें उपयोगकर्ता द्वारा सही किया जा सकता है।
  • 11: इंगित करता है कि दी गई वस्तु या इकाई मौजूद नहीं है।
  • 12: विशेष क्वेरी संकेतों के कारण लॉकिंग का उपयोग न करने वाले प्रश्नों के लिए एक विशेष गंभीरता। कुछ मामलों में, द्वारा किए गए ऑपरेशन पढ़ें, इन बयानों के परिणामस्वरूप असंगत डेटा हो सकता है, क्योंकि ताले स्थिरता की गारंटी के लिए नहीं लिया गया है।
  • 13: लेनदेन को इंगित करता है डेडलॉक त्रुटियां।
  • 14: सुरक्षा से संबंधित त्रुटियों को इंगित करता है, जैसे अनुमति अस्वीकार कर दी गई है।
  • 15: ट्रांजैक्ट-एसक्यूएल कमांड में वाक्यविन्यास त्रुटियों को इंगित करता है।
  • 16: सामान्य त्रुटियों को इंगित करता है जिन्हें उपयोगकर्ता द्वारा सही किया जा सकता है।
  • 17-19: सॉफ़्टवेयर त्रुटियों को इंगित करें जिन्हें उपयोगकर्ता द्वारा सही नहीं किया जा सकता है। समस्या के अपने सिस्टम प्रशासक को सूचित करें।
  • 17: इंगित करता है कि कथन ने एसक्यूएल सर्वर को संसाधनों से बाहर चलाने के लिए प्रेरित किया (जैसे डेटाबेस के लिए स्मृति, ताले या डिस्क स्थान) या सिस्टम प्रशासक द्वारा सेट की गई सीमा से अधिक है।
  • 18: डेटाबेस इंजन सॉफ़्टवेयर में कोई समस्या इंगित करता है, लेकिन कथन निष्पादन पूर्ण करता है, और डेटाबेस इंजन के उदाहरण के कनेक्शन को बनाए रखा जाता है। सिस्टम प्रशासक को हर बार के साथ एक संदेश को सूचित किया जाना चाहिए 18 का गंभीरता स्तर होता है।
  • 1 9: इंगित करता है कि एक गैर-कॉन्फ़िगर करने योग्य डेटाबेस इंजन सीमा पार हो गई है और वर्तमान बैच प्रक्रिया समाप्त कर दी गई है। 1 9 या के गंभीरता वाले स्तर वाले त्रुटि संदेश वर्तमान बैच के निष्पादन को रोकते हैं। गंभीरता स्तर 1 9 त्रुटियां दुर्लभ हैं और सिस्टम प्रशासक या द्वारा आपके प्राथमिक समर्थन प्रदाता द्वारा सही किया जाना चाहिए। जब गंभीरता स्तर 1 वाला संदेश उठाया गया है तो अपने सिस्टम व्यवस्थापक से संपर्क करें। से गंभीर संदेश 1 9 से 25 तक गंभीरता स्तर त्रुटि लॉग में लिखे गए हैं।
  • 20-24: सिस्टम की समस्याओं को इंगित करें और घातक त्रुटियां हैं, जिसका अर्थ है कि डेटाबेस इंजन कार्य जो किसी कथन या बैच को निष्पादित कर रहा है अब चल रहा नहीं है। कार्य के बारे में जानकारी रिकॉर्ड करता है और फिर समाप्त हो जाता है। ज्यादातर मामलों में, डेटाबेस इंजन के उदाहरण से कनेक्शन भी समाप्त हो सकता है। यदि ऐसा होता है, तो समस्या के आधार पर, एप्लिकेशन पुन: कनेक्ट करने में सक्षम नहीं हो सकता है। इस श्रेणी में त्रुटि संदेश को उसी डेटाबेस में डेटा तक पहुंचने वाली प्रक्रियाओं को प्रभावित कर सकते हैं और इंगित कर सकते हैं कि डेटाबेस या ऑब्जेक्ट क्षतिग्रस्त हो गया है। तीव्रता वाले संदेशों में त्रुटि स्तर 1 9 से 24 तक त्रुटि लॉग में लिखा गया है।
  • 20: इंगित करता है कि एक बयान में कोई समस्या आई है। चूंकि समस्या केवल वर्तमान कार्य को प्रभावित करती है, इसलिए यह संभावना नहीं है कि डेटाबेस स्वयं क्षतिग्रस्त हो गया है।
  • 21: इंगित करता है कि एक समस्या है जो वर्तमान डेटाबेस में सभी कार्यों को प्रभावित करती है, लेकिन यह है कि डेटाबेस स्वयं क्षतिग्रस्त हो गया है।
  • 22: इंगित करता है कि संदेश में निर्दिष्ट तालिका या अनुक्रमणिका सॉफ़्टवेयर या हार्डवेयर समस्या से क्षतिग्रस्त हो गई है। गंभीरता स्तर 22 त्रुटियां शायद ही कभी होती हैं। यदि कोई होता है, तो डीबीसीसी CHECKDB को यह निर्धारित करने के लिए चलाएं कि डेटाबेस में अन्य ऑब्जेक्ट्स भी क्षतिग्रस्त हैं या नहीं। समस्या केवल बफर कैश में हो सकती है और डिस्क पर ही नहीं। यदि ऐसा है, तो डेटाबेस इंजन के इंस्टेंस को पुनरारंभ करने से समस्या ठीक हो जाती है। काम जारी रखने के लिए, आपको डेटाबेस इंजन के उदाहरण से पुन: कनेक्ट करना होगा; अन्यथा, समस्या की मरम्मत के लिए डीबीसीसी का उपयोग करें। कुछ मामलों में, आप डेटाबेस को पुनर्स्थापित करना पड़ सकता है। यदि डेटाबेस इंजन के उदाहरण को पुनरारंभ करना समस्या को सही नहीं करता है, तो समस्या डिस्क पर है। कभी-कभी त्रुटि संदेश में निर्दिष्ट ऑब्जेक्ट को नष्ट करने से समस्या हल हो सकती है। उदाहरण के लिए, यदि संदेश रिपोर्ट करता है कि डेटाबेस इंजन के उदाहरण को गैर-क्लस्टर इंडेक्स में लंबाई 0 के साथ पंक्ति मिली है, तो अनुक्रमणिका हटाएं और इसे पुनर्निर्माण करें।
  • 23: इंगित करता है कि पूरे डेटाबेस की अखंडता हार्डवेयर या सॉफ़्टवेयर समस्या के कारण प्रश्न में है। गंभीरता स्तर 23 त्रुटियां शायद ही कभी होती हैं। यदि कोई होता है, तो क्षति के सीमा निर्धारित करने के लिए डीबीसीसी CHECKDB चलाएं। समस्या केवल कैश में हो सकती है और डिस्क पर नहीं हो सकती है। यदि ऐसा है, तो डेटाबेस इंजन के उदाहरण को पुनरारंभ करना इंजन समस्या को ठीक करता है। काम जारी रखने के लिए, आपको डेटाबेस इंजन के उदाहरण के लिए दोबारा कनेक्ट करना होगा; अन्यथा, समस्या को सुधारने के लिए डीबीसीसी का उपयोग करें। कुछ मामलों में, आपको डेटाबेस को पुनर्स्थापित करना पड़ सकता है।
  • 24: मीडिया विफलता इंगित करता है। सिस्टम व्यवस्थापक को डेटाबेस को पुनर्स्थापित करना पड़ सकता है। आपको अपने हार्डवेयर विक्रेता को भी कॉल करना पड़ सकता है।
3

मैं भी एक सूची के लिए देख रहा था और पता चला है कि आप उन्हें देख सकते हैं

SELECT * FROM sysmessages 
0

एसक्यूएल सर्वर 2005 में और आप इस का उपयोग कर सकते ऊपर:

SELECT * FROM sys.messages 
सभी इस बयान चलाकर मास्टर डीबी से

दूसरों के रूप में उल्लेख किया है, आप भी (SQL सर्वर 2000 में उपलब्ध) का उपयोग कर सकते हैं:

SELECT * FROM sysmessages