Web サービスから取得した行のコレクションがあります。これらの行の一部は挿入され、一部は既存の行を更新します。テーブル内の ID に対してクエリを実行しない限り、確認する方法はありません。見つかったら、更新します。そうでない場合は、挿入します。
Select @ID from tbl1 where ID = @ID
IF @@ROWCOUNT = 0
BEGIN
Insert into tbl1
values(1, 'AAAA', 'BBBB', 'CCCC', 'DDD')
END
ELSE
BEGIN
UPDATE tbl1
SET
A = @AAA,
B = @BBB,
C = @CCC,
D = @DDD
WHERE ID = @ID
END
これらの行を一度に 1 つずつストアド プロシージャに渡すことなく、テーブルに更新/挿入する最も効率的な方法を見つけようとしています。
更新 1
私は SQL Server 2005 を使用していると言いました。また、300 のレコードがある場合、300 のストアド プロシージャ コールを行いたくありません。