SQL中的批量更新

时间:2017-01-27 16:33:00

标签: sql sql-server bulkupdate

以下是该方案。

我正在根据来自不同表的连接条件更新表中的多个记录。我希望在有更新时执行SP。这是我用于更新的SQL。

 Update ep
  Set ep.AddressEMail = mail
 FROM SampleTable Samp
  Inner Join Emp ec 
 On ec.EecEmpNo = Samp.employeeid
  Inner Join Emp ep
 on ep.EEID = ec.EecEEID
  Where ep.AddressEMail <> mail

我想为每次发生的更新调用以下SP。

EXEC dbo.AddQuickEvent

我是否必须更改上面的SQL以循环遍历每条记录并执行所需的SP(exec dbo.AddQuickEvent),或者在对行进行更新时执行其他存储过程还有其他方法。

1 个答案:

答案 0 :(得分:2)

更新是基于集合的操作,因此最好不要循环记录并为每条记录调用SP,因为这样效率非常低。

更好的选择可能是在表中的触发器中执行“AddQuickEvent”中的任何操作,并对更新的记录集进行操作。

在SQL中运行时,从集合操作的角度思考而不是单独循环和处理每条记录几乎总是更好。