No, SQL Server è intelligente e sa che viene utilizzato per un EXISTS e non restituisce NESSUN DATO al sistema.
Cito Microsoft:http://technet.microsoft.com/en-us/library/ms189259.aspx?ppud=4
L'elenco di selezione di una sottoquery introdotta da EXISTS è quasi sempre costituito da un asterisco (*). Non c'è motivo per elencare i nomi delle colonne perché stai solo verificando se esistono righe che soddisfano le condizioni specificate nella sottoquery.
Per verificare te stesso, prova a eseguire quanto segue:
SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable
WHERE a_valid_clause )
Se stesse effettivamente facendo qualcosa con l'elenco SELECT, genererebbe un errore div by zero. Non è così.
EDIT:Nota, lo standard SQL ne parla in realtà.
Standard ANSI SQL 1992, pg 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
3) Caso:
a) Se il <select list>
"*" è semplicemente contenuto in un <subquery>
thatè immediatamente contenuto in un <exists predicate>
, quindi il <select list>
èequivalente a un <value expression>
questo è un <literal>
arbitrario .