समय-समय पर मैं SQL सर्वर स्टेटमेंट्स देखता हूं जो अर्धविराम ';' से शुरू होते हैं। की तरह नीचे';' टीएसक्यूएल स्टेटमेंट की शुरुआत में
;WITH cte
AS (SELECT ROW_NUMBER() OVER (PARTITION BY Col1, Col2, Col3
ORDER BY (SELECT 0)) RN
FROM #MyTable)
DELETE FROM cte
WHERE RN > 1
अन्य उदाहरण ;THROW
है क्यों वास्तव में वहाँ है एक ';' TSQL बयान की शुरुआत
अद्यतन 1:
कृपया ध्यान दें कि मैं के बारे में पूछ रहा हूँ ';' बयान की शुरुआत में। इस सवाल का यह एक
When should I use semicolons in SQL Server?
अद्यतन 2 नकल नहीं है:
@MartinSmith जवाब समझ में आता है।
http://www.sommarskog.se/error_handling/Part1.html#jumpTHROW
इस बिंदु आप अपने आप से कह रहा हो सकता है पर:
बस यकीन है कि हम इस पोस्ट के लिए एक पूरा जवाब है बनाने के लिए, इस सम्मान लेख पर विचार वह मेरा पैर खींच किया जाना चाहिए , क्या माइक्रोसॉफ्ट वास्तव में कमांड को कॉल करता था; थ्रो? क्या यह सिर्फ THROW नहीं है? सच है, यदि आप पुस्तकें ऑनलाइन में देखते हैं, तो कोई अग्रणी अर्धविराम नहीं है। लेकिन अर्धविराम वहां होना चाहिए। आधिकारिक तौर पर, यह पिछले बयान के लिए टर्मिनेटर है, लेकिन यह वैकल्पिक है, और हर किसी से सेमीकॉलन का उपयोग उनके टी-एसक्यूएल स्टेटमेंट को समाप्त करने के लिए करता है।
मैं @ मार्टिनस्मिथ उत्तर से सहमत हूं, लेकिन ऐसा लगता है कि मामला कुछ चरम स्तर पर लिया जा रहा है।
आमतौर पर, एक संग्रहीत प्रक्रिया में THROW अपनी पंक्ति से एक बयान है। एसक्यूएल डेवलपर्स बस इस तरह एसक्यूएल लाइनों को मर्ज नहीं करते हैं और अर्धविराम से चूक जाते हैं।
मेरे लिए, वहाँ और मौका लोग गलती से मामले चरम और दुर्लभ कुछ तो होना ही उपर्युक्त उद्धरण से समझाया गया है TSQL
की एक और पंक्ति के साथ 'थ्रो' बयान मिश्रण से एक मेज ड्रॉप है? या मैं यहाँ एक बिंदु याद कर रहा हूँ?
यहां सहायता के लिए धन्यवाद। क्या आप मेरी अपडेट की गई टिप्पणियों पर अपना साझा करने में सक्षम होंगे? –
@AllanXu - हाँ मैं आपकी भावनाओं से सहमत हूं; थ्रोव - यह अभ्यास केवल कुछ है जो मैं वेब पर कोड नमूने के लिए विचार करता हूं। मेरे अपने स्रोत कोड में कुछ नहीं। जैसा कि सही काम करना है यह सुनिश्चित करने के लिए कि आप अर्ध कोलन के साथ पिछले बयान (और आदर्श रूप से सभी कथन) को समाप्त कर दें। –