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