EXISTS
(ou NOT EXISTS
) est spécialement conçu pour vérifier si quelque chose existe et devrait donc être (et est) la meilleure option. Il s'arrêtera sur la première ligne qui correspond donc il ne nécessite pas de TOP
clause et il ne sélectionne en fait aucune donnée, il n'y a donc pas de surcharge dans la taille des colonnes. Vous pouvez utiliser SELECT *
en toute sécurité ici - pas différent de SELECT 1
, SELECT NULL
ou SELECT AnyColumn
... (vous pouvez même utiliser une expression invalide comme SELECT 1/0
et il ne cassera pas).
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