Nej, SQL Server är smart och vet att den används för en EXISTS, och returnerar INGA DATA till systemet.
Quoth Microsoft:http://technet.microsoft.com/en-us/library/ms189259.aspx?ppud=4
Selectlistan för en underfråga som introduceras av EXISTS består nästan alltid av en asterisk (*). Det finns ingen anledning att lista kolumnnamn eftersom du bara testar om rader som uppfyller villkoren som anges i underfrågan finns.
För att kontrollera dig själv, prova att köra följande:
SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable
WHERE a_valid_clause )
Om det faktiskt gjorde något med SELECT-listan, skulle det ge en div med noll-fel. Det gör det inte.
EDIT:Notera, SQL-standarden talar faktiskt om detta.
ANSI SQL 1992 Standard, sid 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
3) Fall:
a) Om
"*" finns helt enkelt i en som omedelbart ingår i en
, sedan
motsvarar ett
det är en godtycklig .