Không, SQL Server thông minh và biết nó đang được sử dụng cho một TỒN TẠI và trả về KHÔNG CÓ DỮ LIỆU cho hệ thống.
Quoth Microsoft:http://technet.microsoft.com/en-us/library/ms189259.aspx? Ppud =4
Danh sách chọn lọc của truy vấn con do EXISTS giới thiệu hầu như luôn có dấu hoa thị (*). Không có lý do gì để liệt kê tên cột vì bạn chỉ đang kiểm tra xem các hàng đặt điều kiện được chỉ định trong truy vấn con có tồn tại hay không.
Để tự kiểm tra, hãy thử chạy như sau:
SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable
WHERE a_valid_clause )
Nếu nó thực sự đang làm điều gì đó với danh sách SELECT, nó sẽ ném ra lỗi div bằng 0. Nó không.
CHỈNH SỬA:Lưu ý, Chuẩn SQL thực sự nói về điều này.
Tiêu chuẩn ANSI SQL 1992, trang 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
3) Trường hợp:
a) Nếu<select list>
"*" chỉ được chứa trong một<subquery>
thatis ngay lập tức được chứa trong một<exists predicate>
, rồi đến<select list>
tương đương với<value expression>
đó là một<literal>
tùy ý .