नहीं, SQL सर्वर स्मार्ट है और जानता है कि इसका उपयोग EXISTS के लिए किया जा रहा है, और सिस्टम को कोई डेटा नहीं देता है।
क्वॉथ माइक्रोसॉफ्ट:http://technet.microsoft.com/en-us/library/ms189259.aspx?ppud=4
<ब्लॉककोट>EXISTS द्वारा प्रस्तुत उपश्रेणी की चयन सूची में लगभग हमेशा एक तारक (*) होता है। कॉलम नामों को सूचीबद्ध करने का कोई कारण नहीं है क्योंकि आप सिर्फ परीक्षण कर रहे हैं कि क्या उपक्वेरी में निर्दिष्ट शर्तों को पूरा करने वाली पंक्तियां मौजूद हैं।
अपने आप को जांचने के लिए, निम्नलिखित को चलाने का प्रयास करें:
SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable
WHERE a_valid_clause )
अगर यह वास्तव में चयन सूची के साथ कुछ कर रहा था, तो यह शून्य त्रुटि से एक div फेंक देगा। ऐसा नहीं है।
संपादित करें:ध्यान दें, SQL मानक वास्तव में इस बारे में बात करता है।
एएनएसआई एसक्यूएल 1992 मानक, पृष्ठ 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
<ब्लॉककोट>
3) केस:
a) यदि <select list>
"*" बस एक <subquery>
. में समाहित है यह तुरंत एक <exists predicate>
. में समाहित है , फिर <select list>
<value expression>
के बराबर है यह एक मनमाना <literal>
है ।