EXISTS
(hoặc NOT EXISTS
) được thiết kế đặc biệt để kiểm tra xem có thứ gì đó tồn tại hay không và do đó nên (và là) lựa chọn tốt nhất. Nó sẽ dừng ở hàng đầu tiên phù hợp để nó không yêu cầu TOP
và nó không thực sự chọn bất kỳ dữ liệu nào nên không có chi phí về kích thước của các cột. Bạn có thể sử dụng SELECT *
một cách an toàn ở đây - không khác gì SELECT 1
, SELECT NULL
hoặc SELECT AnyColumn
... (bạn thậm chí có thể sử dụng một biểu thức không hợp lệ như SELECT 1/0
và nó sẽ không bị vỡ).
IF EXISTS (SELECT * FROM Products WHERE id = ?)
BEGIN
--do what you need if exists
END
ELSE
BEGIN
--do what needs to be done if not
END