Не, SQL Server е интелигентен и знае, че се използва за EXISTS и не връща НИКАКВИ ДАННИ към системата.
Quoth Microsoft: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 )
Ако действително правеше нещо със списъка SELECT, щеше да изведе грешка div по нула. Не е така.
РЕДАКТИРАНЕ:Забележете, SQL стандартът всъщност говори за това.
Стандарт ANSI SQL 1992, стр. 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
3) Случай:
a) Ако"*" просто се съдържа в
който непосредствено се съдържа в
, след това
е еквивалентен на
<израз за стойност>код> това е произволен
.