EXISTS
(o NOT EXISTS
) è appositamente progettato per verificare se qualcosa esiste e quindi dovrebbe essere (ed è) l'opzione migliore. Si fermerà sulla prima riga corrispondente, quindi non richiede un TOP
clausola e in realtà non seleziona alcun dato, quindi non vi è alcun sovraccarico nella dimensione delle colonne. Puoi tranquillamente usare SELECT *
qui - non diverso da SELECT 1
, SELECT NULL
o SELECT AnyColumn
... (puoi anche usare un'espressione non valida come SELECT 1/0
e non si rompe).
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