Nhưng rõ ràng là máy chủ MS Sql hỗ trợ lý thuyết ngắn mạch, để cải thiện hiệu suất bằng cách tránh kiểm tra không cần thiết,
Ví dụ hỗ trợ:
SELECT 'TEST'
WHERE 1 = 'A'
SELECT 'TEST'
WHERE 1 = 1 OR 1 = 'A'
Ở đây, ví dụ đầu tiên sẽ dẫn đến lỗi 'Chuyển đổi không thành công khi chuyển đổi giá trị varchar' A 'thành kiểu dữ liệu int.'
Trong khi điều thứ hai chạy dễ dàng khi điều kiện 1 = 1 được ước tính thành TRUE và do đó điều kiện thứ hai hoàn toàn không chạy.
Hơn nữa
SELECT 'TEST'
WHERE 1 = 0 OR 1 = 'A'
ở đây điều kiện đầu tiên sẽ đánh giá là sai và do đó DBMS sẽ chuyển sang điều kiện thứ hai và một lần nữa bạn sẽ gặp lỗi chuyển đổi như trong ví dụ trên.
LƯU Ý: TÔI VIẾT ĐIỀU KIỆN R ER RÀNG CHỈ CẦN THỰC HIỆN THỜI TIẾT MỌI ĐIỀU KIỆN ĐƯỢC THỰC HIỆN HOẶC NGẮN HẠN NẾU KẾT QUẢ TRONG R ER RÀNG CÓ Ý NGH THEA ĐIỀU KIỆN ĐƯỢC THỰC HIỆN, RÚT GỌN KHÁC.
KHAI THÁC ĐƠN GIẢN
Xem xét,
WHERE 1 = 1 OR 2 = 2
vì điều kiện đầu tiên được đánh giá thành TRUE , việc đánh giá điều kiện thứ hai là vô nghĩa vì đánh giá của nó ở bất kỳ giá trị nào đều không ảnh hưởng đến kết quả, vì vậy cơ hội tốt cho Sql Server để tiết kiệm thời gian Thực hiện truy vấn bằng cách bỏ qua kiểm tra hoặc đánh giá điều kiện không cần thiết .
trong trường hợp "HOẶC" nếu điều kiện đầu tiên được ước tính thành TRUE , toàn bộ chuỗi được kết nối bởi "HOẶC" sẽ được coi là được đánh giá là đúng mà không đánh giá các điều kiện khác.
condition1 OR condition2 OR ..... OR conditionN
nếu điều kiện1 được ước tính là đúng, phần còn lại của tất cả các điều kiện cho đến khi điều kiệnN sẽ bị bỏ qua. Trong các từ tổng quát khi xác định TRUE đầu tiên , tất cả các điều kiện khác được liên kết bởi OR sẽ bị bỏ qua.
Xem xét điều kiện thứ hai
WHERE 1 = 0 AND 1 = 1
vì điều kiện đầu tiên được đánh giá là FALSE, việc đánh giá điều kiện thứ hai là vô nghĩa vì đánh giá của nó ở bất kỳ giá trị nào đều không ảnh hưởng đến kết quả, vì vậy một lần nữa cơ hội tốt để Sql Server tiết kiệm thời gian Thực hiện truy vấn bằng cách bỏ qua kiểm tra hoặc đánh giá điều kiện không cần thiết .
trong trường hợp "VÀ" nếu điều kiện đầu tiên được ước tính thành FALSE , toàn bộ chuỗi được kết nối với "VÀ" sẽ được coi là được đánh giá với FALSE mà không đánh giá người khác.
condition1 AND condition2 AND ..... conditionN
nếu điều kiện1 được ước tính thành FALSE , phần còn lại của tất cả các điều kiện cho đến khi điều kiệnN sẽ bị bỏ qua. Nói một cách khái quát khi xác định FALSE đầu tiên , tất cả các điều kiện khác được liên kết bởi AND sẽ bị bỏ qua.
SAU ĐÂY, MỘT CHƯƠNG TRÌNH TUYỆT VỜI NÊN LUÔN LUÔN CHƯƠNG TRÌNH TUYỆT VỜI TRONG NHỮNG CÁCH NÀO, BÀI GIẢNG MỞ RỘNG HOẶC ĐIỀU KIỆN HẤP DẪN NHẤT ĐƯỢC TÌM HIỂU MỘT CÁCH NÀO ĐỂ KIẾM ĐƯỢC ĐIỀU KIỆN ĐẦU TIÊN, HOẶC KIẾM ĐƯỢC ĐIỀU KIỆN