EXISTS
(или NOT EXISTS
) е специално разработен за проверка дали нещо съществува и следователно трябва да бъде (и е) най-добрият вариант. Той ще спре на първия ред, който съвпада, така че да не изисква TOP
клауза и всъщност не избира никакви данни, така че няма допълнителни разходи за размера на колоните. Можете безопасно да използвате SELECT *
тук - не се различава от SELECT 1
, SELECT NULL
или SELECT AnyColumn
... (можете дори да използвате невалиден израз като SELECT 1/0
и няма да се счупи).
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