EXISTS
(nebo NOT EXISTS
) je speciálně navržen pro kontrolu, zda něco existuje, a proto by měl být (a je) tou nejlepší volbou. Zastaví se na prvním řádku, který odpovídá, takže nevyžaduje TOP
klauzule a ve skutečnosti nevybírá žádná data, takže neexistuje žádná režie ve velikosti sloupců. Můžete bezpečně použít SELECT *
zde - nic jiného než SELECT 1
, SELECT NULL
nebo SELECT AnyColumn
... (můžete dokonce použít neplatný výraz jako SELECT 1/0
a nerozbije se).
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