我有一组从 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
我应该提到我正在使用 SQL Server 2005。此外,如果我有 300 条记录,我不想进行 300 次存储过程调用。