टी-एसक्यूएल में चर निर्दिष्ट करते समय SET
और SELECT
कथन के बीच अंतर क्या हैं?एसईटी बनाम चर निर्दिष्ट करते समय चयन करें?
उत्तर
Quote, जो this article से सार रखते हैं:
- सेट चर कार्य के लिए एएनएसआई मानक है, का चयन नहीं है।
- एसईटी एक समय में केवल एक चर निर्दिष्ट कर सकता है, चयन एक साथ कई असाइनमेंट कर सकता है।
- यदि किसी क्वेरी से असाइन करना है, तो एसईटी केवल स्केलर मान असाइन कर सकता है। यदि क्वेरी एकाधिक मान/पंक्तियां लौटाती है तो एसईटी एक त्रुटि उठाएगा। चयन वैरिएबल को मानों में से एक को असाइन करेगा और इस तथ्य को छुपाएगा कि कई मान वापस लौटाए गए थे (इसलिए आपको शायद कभी पता नहीं चलेगा कि कुछ और गलत क्यों हो रहा था - मज़ेदार समस्या निवारण करें)
- यदि कोई क्वेरी से असाइन करते समय कोई मूल्य वापस नहीं किया गया है, फिर एसईटी एनयूएलएल असाइन करेगा, जहां चयन असाइनमेंट नहीं करेगा (इसलिए चर को इसके पिछले मान से नहीं बदला जाएगा)
- गति अंतर के रूप में - एसईटी और चयन के बीच कोई प्रत्यक्ष अंतर नहीं है । हालांकि एक शॉट में एकाधिक असाइनमेंट करने की चयन करने की क्षमता एसईटी पर थोड़ा सा गति प्रदान करती है।
मेरा मानना है कि SET
जबकि SELECT
नहीं है एएनएसआई मानक है। जब कोई मान नहीं मिलता है तो नीचे दिए गए उदाहरण में SET
बनाम SELECT
के विभिन्न व्यवहार को भी ध्यान दें।
declare @var varchar(20)
set @var = 'Joe'
set @var = (select name from master.sys.tables where name = 'qwerty')
select @var /* @var is now NULL */
set @var = 'Joe'
select @var = name from master.sys.tables where name = 'qwerty'
select @var /* @var is still equal to 'Joe' */
+1 यह समझने के लिए एक बार चलाने के लिए बेहतर है कि इसे पढ़ने के लिए, जांचें, चलाएं, याद रखें कि केवल पढ़ने के लिए, लेकिन अन्य उत्तरों केवल –
हैं यदि आप वास्तव में 'select @var = का उपयोग करते हैं (name.sys.tables से नाम का चयन करें जहां नाम = 'qwerty') 'आप @ var को शून्य के रूप में प्राप्त करेंगे। जो उदाहरण आप दे रहे हैं वह वही प्रश्न नहीं है। – Zack
@Zack आप पूरी तरह से उदाहरण के बिंदु को याद कर चुके हैं। –
जब प्रश्नों लेखन, इस अंतर को ध्यान में रखा जाना चाहिए:
DECLARE @A INT = 2
SELECT @A = TBL.A
FROM (SELECT 1 A) TBL
WHERE 1 = 2
SELECT @A
/* @A is 2*/
---------------------------------------------------------------
DECLARE @A INT = 2
SET @A = (
SELECT TBL.A
FROM (SELECT 1 A) TBL
WHERE 1 = 2
)
SELECT @A
/* @A is null*/
बहुत अच्छा, संक्षेप – SimplyInk
- 1. एचएसईटी बनाम एसईटी स्मृति उपयोग?
- 2. सेट बनाम चयन - क्या अंतर है?
- 3. एसईटी उपयोगकर्ता परिभाषित चर mysql वापसी शून्य में?
- 4. रेल - निर्दिष्ट समय क्षेत्र में दिनांक समय का चयन
- 5. लिंक: "से .. चयन करें" फ़ॉर्म का उपयोग करते समय लैम्ब्डा अभिव्यक्ति
- 6. pandas.to_csv का उपयोग करते समय दिनांक प्रारूप कैसे निर्दिष्ट करें?
- 7. विधियों को ओवरराइड करते समय एक्सेस निर्दिष्ट करें
- 8. सीए 1305: संस्कृति निर्दिष्ट करते समय Verbosity
- 9. रेल संग्रह_ चयन करें बनाम
- 10. jQuery + जेडटेबल - चयन करते समय पता लगाएं
- 11. उस पर क्लिक करते समय डीआईवी चयन को अक्षम करें
- 12. एक्सएमएल फ़ील्ड को अनदेखा करते समय LINQ का चयन करें
- 13. चयन को संरक्षित करते समय QSqlTableModel को रीफ्रेश कैसे करें?
- 14. यूनिक्स समय में कनवर्ट करते समय समय क्षेत्र (यूटीसी) निर्दिष्ट कैसे करें? (अजगर)
- 15. एक्सेल चयन बनाम सक्रिय करें
- 16. नवीनतम रिकॉर्ड का चयन करते समय चयन बहुत धीमा है
- 17. चयन विवरण - एसईटी ट्रांज़ेक्शन इश्यूलेशन स्तर के साथ नोलोक ने
- 18. एकाधिक चर के लिए 1 एसईटी स्टेटमेंट जैसे घोषणापत्र
- 19. ओओपी - बिना जीईटी/एसईटी
- 20. Node.js से शुद्ध अनुरोध करते समय नेटवर्क इंटरफ़ेस निर्दिष्ट कैसे करें?
- 21. नोड का चयन करने का प्रयास करते समय आप xsl में एक चर का उपयोग कैसे करते हैं?
- 22. लिनक्स का चयन करें() बनाम ppoll() pselect बनाम()
- 23. निजी साझा चर बनाम स्थानीय चर/नामस्थान प्रदूषण बनाम प्रदर्शन?
- 24. चयन बनाम मतदान बनाम एपोल
- 25. हाइबरनेट उप-चयन बनाम बैच लाने
- 26. INSERT INTO बनाम चयन
- 27. NSNumber ऑब्जेक्ट्स स्वरूपित करते समय दशमलव स्थानों को कैसे निर्दिष्ट करें?
- 28. phpMyAdmin में लॉगिन करते समय होस्ट निर्दिष्ट करना संभव है?
- 29. जार फ़ाइल को कॉल करते समय JVM तर्क निर्दिष्ट करना?
- 30. उपज रिटर्न बनाम रिटर्न का चयन करें
मैं downvote नहीं था, लेकिन निम्नलिखित काफी सही नहीं है: "जहाँ तक गति मतभेद के रूप में - कोई सीधा मतभेद देखते हैं एसईटी और चयन के बीच "। यदि आप एक मान में एकाधिक मान असाइन करते हैं, तो यह बहुत तेज़ हो सकता है कि maultiple सेट के माध्यम से। Google अप "एक चयन के साथ एकाधिक चर असाइन करना तेजी से काम करता है" –
@AlexKuznetsov: बाद में वाक्य बिल्कुल कहता है। –
@ ओएमजी टट्टू: यह 10 गुना तेज या अधिक हो सकता है, इसलिए मुझे यकीन नहीं है कि यह "मामूली गति लाभ" है या नहीं। –