Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Le moyen le plus rapide de déterminer si l'enregistrement existe

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