Nie, SQL Server jest inteligentny i wie, że jest używany jako ISTNIEJE, i nie zwraca do systemu ŻADNYCH DANYCH.
Rzecz w Microsoft:http://technet.microsoft.com/en-us/library/ms189259.aspx?ppud=4
Lista wyboru podzapytania wprowadzonego przez EXISTS prawie zawsze składa się z gwiazdki (*). Nie ma powodu, aby wymieniać nazwy kolumn, ponieważ po prostu sprawdzasz, czy istnieją wiersze spełniające warunki określone w podzapytaniu.
Aby się sprawdzić, spróbuj wykonać następujące czynności:
SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable
WHERE a_valid_clause )
Gdyby faktycznie robił coś z listą SELECT, wyrzuciłby div przez zero błędu. Nie.
EDYCJA:Uwaga, standard SQL faktycznie mówi o tym.
ANSI SQL 1992 Standard, str. 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
3) Przypadek:
a) Jeśli <select list>
"*" jest po prostu zawarty w <subquery>
to jest natychmiast zawarte w <exists predicate>
, a następnie <select list>
jest odpowiednikiem wyrażenia <value expression>
czyli dowolny <literal>
.