लेकिन यह स्पष्ट है कि MS Sql सर्वर शॉर्ट सर्किट थ्योरी का समर्थन करता है, ताकि अनावश्यक जाँच से बचकर प्रदर्शन को बेहतर बनाया जा सके,
सहायक उदाहरण:
SELECT 'TEST'
WHERE 1 = 'A'
SELECT 'TEST'
WHERE 1 = 1 OR 1 = 'A'
यहाँ, पहला उदाहरण त्रुटि प्रकार में परिणत होगा जब डेटा प्रकार int के लिए varchar value 'A' को परिवर्तित करने में विफल रहा। '
जबकि दूसरी आसानी से हालत 1 = 1 के रूप में चलाता है TRUE का मूल्यांकन किया गया और इस प्रकार दूसरी स्थिति बिल्कुल नहीं चली।
आगे और भी
SELECT 'TEST'
WHERE 1 = 0 OR 1 = 'A'
यहाँ पहली शर्त झूठी का मूल्यांकन करेगी और इसलिए DBMS दूसरी स्थिति के लिए जाएगी और फिर आपको उपरोक्त उदाहरण में रूपांतरण की त्रुटि मिलेगी।
ध्यान दें: मैं गलत निष्कर्ष निकालता हूं, जो इस निष्कर्ष पर भरोसा करता है कि निष्कर्ष निकाला गया है या छोटा-सा हो सकता है, यदि गलत तरीके से गलत तरीके से निष्कर्ष निकाले गए हैं, तो छोटे-सिर वाले अन्य दस्तावेज भी हैं।
सरल विस्तार
विचार करें,
WHERE 1 = 1 OR 2 = 2
पहली शर्त के रूप में TRUE का मूल्यांकन किया जा रहा है, दूसरी स्थिति का मूल्यांकन करने के लिए इसका अर्थहीन है क्योंकि जो कुछ भी मूल्य में इसका मूल्यांकन परिणाम को प्रभावित नहीं करेगा, इसलिए एसक्यूएल सर्वर के लिए इसका अच्छा अवसर अनावश्यक स्थिति या मूल्यांकन को छोड़ कर क्वेरी निष्पादन समय बचाने के लिए है। ।
"या" के मामले में यदि पहली शर्त का मूल्यांकन TRUE से किया जाता है तो "OR" से जुड़ी पूरी श्रृंखला को दूसरों का मूल्यांकन किए बिना सच मान लिया जाएगा।
condition1 OR condition2 OR ..... OR conditionN
यदि कंडिशन 1 का सही मूल्यांकन किया जाता है, तो सभी शर्तों को तब तक आराम करें जब तक कि कंडीशन को छोड़ नहीं दिया जाएगा। पहले TRUE के निर्धारण में सामान्यीकृत शब्दों में , OR द्वारा लिंक की गई अन्य सभी शर्तों को छोड़ दिया जाएगा।
दूसरी शर्त पर विचार करें
WHERE 1 = 0 AND 1 = 1
पहली शर्त के रूप में दूसरी शर्त का मूल्यांकन करने के लिए FALSE अपने अर्थहीन हो रहा है क्योंकि जो कुछ भी मूल्य में इसका मूल्यांकन परिणाम को प्रभावित नहीं करेगा, इसलिए फिर Sql सर्वर के लिए यह अच्छा मौका है कि वह अनावश्यक स्थिति की जाँच या मूल्यांकन करके क्वेरी निष्पादन समय को बचा सके। ।
"और" के मामले में अगर पहली शर्त का मूल्यांकन FALSE के लिए किया जाता है तो "और" से जुड़ी पूरी श्रृंखला को दूसरों का मूल्यांकन किए बिना FALSE के मूल्यांकन के रूप में माना जाएगा।
condition1 AND condition2 AND ..... conditionN
यदि F1SE के लिए कंडिशन 1 का मूल्यांकन किया जाता है , तो सभी शर्तों को तब तक आराम करें जब तक कि कंडीशन को छोड़ नहीं दिया जाएगा। पहले FALSE के निर्धारण में सामान्यीकृत शब्दों में , AND द्वारा लिंक की गई अन्य सभी शर्तों को छोड़ दिया जाएगा।
चोर, एक वाइस प्रोगामर, जो पहले भी एक दिन, जैसे कम से कम या सबसे लंबे समय तक रहने वाले कॉस्टिट्यूशन गेट, या एफआईआर में कॉर्डिनेशन में काम कर रहा है, का पता लगाने के बाद भी आपको पता नहीं चलेगा।