Nếu chúng tôi có tuyên bố SELECT
bên trong IF EXISTS
, việc thực thi có dừng ngay khi tìm thấy bản ghi trong bảng không? Ví dụ:NẾU EXISTS trong T-SQL
IF EXISTS(SELECT * FROM table1 WHERE Name='John')
return 1
else
return 0
Nếu một hàng tồn tại trong bảng có tên = John, nó có dừng hoạt động và trả về 1 hoặc chuyển nó qua toàn bộ bảng tìm kiếm các kết quả phù hợp hơn không?
FYI, bạn cũng có thể cân nhắc sử dụng SELECT 1 thay vì SELECT * để bạn có thể tận dụng tốt hơn các chỉ số (không phải lấy tất cả các lĩnh vực từ cái bàn). – sfuqua
@sfuqua [Đây là một huyền thoại] (http://bradsruminations.blogspot.com/2009/09/age-old-select-vs-select-1-debate.html) –
NẾU DANH SÁCH (SELECT 1/0 FROM table1 WHERE Name = 'John') ... điều này sẽ không lỗi ... SQL không bao giờ đánh giá 'SELECT' ... nó chỉ nhìn vào' WHERE'. –