मैं हमेशा इसे यहां या स्टैकऑवरफ्लो पर पोस्ट करते समय करता हूं क्योंकि WITH
- चूंकि कीवर्ड अतिभारित है - पिछले कमांड को एक समाप्ति अर्ध-कोलन की आवश्यकता है। यदि मैं एक कोड नमूना पेस्ट करता हूं जो CTE का उपयोग करता है, तो अनिवार्य रूप से कुछ उपयोगकर्ता इसे अपने मौजूदा कोड में पेस्ट करेंगे, और पिछले विवरण में अर्ध-बृहदान्त्र नहीं होगा। तो कोड टूट जाता है, और मुझे शिकायतें मिलती हैं:
आपका कोड टूट गया! मुझे यह त्रुटि संदेश मिला:
Incorrect syntax near 'WITH'
...
हालांकि मैं यह मानना चाहता हूं कि लोग एक अर्ध-उपनिवेश के साथ हमेशा अपने बयानों को समाप्त करने के बारे में बेहतर होते जा रहे हैं , मैं पहले से ही शोर-शराबा करना चाहता हूं और हमेशा इसे शामिल करता हूं। कुछ लोगों को यह पसंद नहीं है, लेकिन <shrug />
। आप एक वैध विवरण के पहले या बाद में जितने चाहें उतने अर्ध-कॉलन शामिल कर सकते हैं। यह मान्य है:
;;;;SELECT 1;;;;;;;;;;;;SELECT 2;;;;;;;;SELECT 3;;;;;
तो वहाँ एक अतिरिक्त अर्ध-उपनिवेश होने से कोई नुकसान नहीं है जो एक बयान से पहले है कि परिभाषा से इसकी आवश्यकता है। यह ऐसा करने के लिए सुरक्षित है भले ही यह बहुत सुंदर नहीं है।
इस बिंदु को प्राप्त करने के लिए इसे अजीब तरह से शब्दबद्ध करना पड़ता है, लेकिन "सेमी-कोलोन के साथ एक वैध कथन को समाप्त नहीं करना" वास्तव में SQL Server 2008 के बाद से हटा दिया गया है। इसलिए जैसा कि मैं ब्लॉग पोस्ट में ऊपर वर्णित लिंक का वर्णन करता हूं, यहां तक कि उन मामलों में भी जहां किसी त्रुटि को दरकिनार करने की आवश्यकता नहीं है, इसका उपयोग जहाँ भी मान्य हो, करना चाहिए। आप इसे यहाँ देख सकते हैं:
http://msdn.microsoft.com/en-us/library/ms143729.aspx
("अर्ध-उपनिवेश" के लिए अंतिम पृष्ठ खोजें)
यदि अपवाद नहीं होते तो बेशक यह SQL सर्वर नहीं होता। इसे इस्तेमाल करे:
BEGIN TRY;
SELECT 1/1;
END TRY;
BEGIN CATCH;
SELECT 1/1;
END CATCH;
यह नियम का एकमात्र अपवाद नहीं है, लेकिन यह वह है जिसे मैं सबसे अधिक अनपेक्षित पाता हूं।