EXISTS
(oder NOT EXISTS
) wurde speziell entwickelt, um zu überprüfen, ob etwas existiert, und sollte (und ist) daher die beste Option sein. Es wird in der ersten übereinstimmenden Zeile angehalten, sodass kein TOP
erforderlich ist -Klausel und es werden keine Daten tatsächlich ausgewählt, sodass es keinen Overhead in Bezug auf die Spaltengröße gibt. Sie können bedenkenlos SELECT *
verwenden hier - nicht anders als SELECT 1
, SELECT NULL
oder SELECT AnyColumn
... (Sie können sogar einen ungültigen Ausdruck wie SELECT 1/0
verwenden und es wird nicht brechen).
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