【发布时间】:2013-01-21 21:11:05
【问题描述】:
我有一组从 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 次存储过程调用。
【问题讨论】:
-
听起来您正在寻找MERGE 声明!
标签: sql sql-server-2005