EXISTS
(またはNOT EXISTS
)は、何かが存在するかどうかをチェックするために特別に設計されているため、最良のオプションである必要があります(そしてそうです)。一致する最初の行で停止するため、TOP
は必要ありません。 句であり、実際にはデータを選択しないため、列のサイズにオーバーヘッドはありません。 SELECT *
を安全に使用できます ここ-SELECT 1
と同じ 、SELECT NULL
またはSELECT AnyColumn
...(SELECT 1/0
のような無効な式を使用することもできます そしてそれは壊れません)。
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