Nee, SQL Server is slim en weet dat het wordt gebruikt voor een BESTAAT, en geeft GEEN GEGEVENS terug aan het systeem.
Quoth Microsoft:http://technet.microsoft.com/en-us/library/ms189259.aspx?ppud=4
De geselecteerde lijst van een subquery die door EXISTS is geïntroduceerd, bestaat bijna altijd uit een asterisk (*). Er is geen reden om kolomnamen op te sommen, omdat u alleen maar test of er rijen bestaan die voldoen aan de voorwaarden die zijn opgegeven in de subquery.
Probeer het volgende om uzelf te controleren:
SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable
WHERE a_valid_clause )
Als het daadwerkelijk iets deed met de SELECT-lijst, zou het een div-fout met nul genereren. Dat doet het niet.
EDIT:Let op, de SQL-standaard spreekt hier eigenlijk over.
ANSI SQL 1992-standaard, blz. 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
3) Geval:
a) Als de <select list>
"*" staat gewoon in een <subquery>
dat is onmiddellijk vervat in een <exists predicate>
, dan de <select list>
is gelijk aan een <value expression>
dat is een willekeurige <literal>
.