【发布时间】:2017-06-03 13:02:31
【问题描述】:
我想选择一个表记录并为每一行运行一个存储过程,该存储过程使用一些参数。 我的表包含 ProductId、ProductUrl 和 ShopId 我的存储过程使用此字段更新另一个表。 在 c# 中,我可以使用变量和每个循环,并在此循环中调用存储过程,但我想在 sql 查询中运行此操作 类似的东西:
items = (SELECT * From Tbl_Products);
foreach(var pr in items)
{
SP_Update_Products(pr.ProductId,pr.ProductUrl,pr.ShopId);
}
当然这不是真的,我只是想表明我的意思
【问题讨论】:
-
一般来说,您不想在数据库中使用循环。作为一般规则,大量的小更新会比一个大的更新慢。如果您的程序逻辑在循环中运行,那很好,但我不会在循环的每次迭代中执行更新。我会保存更新直到循环完成,然后执行一次更新。
标签: sql stored-procedures sql-server-2016