我有一个 SP 定期(一天几次)更新表中的行,SP 当前获取 PK 和更新值的提要。输入提要可以包含 1 - 1000 行。
我想知道更改 SP 是否会更好,以便它一次只更新一行,并让应用程序循环遍历每行调用 SP 的行,而不是只为所有行调用一次。
我有一个 SP 定期(一天几次)更新表中的行,SP 当前获取 PK 和更新值的提要。输入提要可以包含 1 - 1000 行。
我想知道更改 SP 是否会更好,以便它一次只更新一行,并让应用程序循环遍历每行调用 SP 的行,而不是只为所有行调用一次。
如果没有更好的表格细节和应用程序正在进行的调用,我将假设提要中的每个调用/值/行都与不同的PK 相关。如果它们都与不是唯一键的表中的单个键值相关(例如,子表,如
OrderDetails.OrderID
),则解决方案只会略有变化。在任何一种情况下,应用程序都不应该调用存储过程 1,000 次,原因有很多。相反,您可以使用表值参数并一次性传递所有 1,000 个值。
存储过程采用这个单一参数:
现在,您的应用程序可以传入一个包含 1,000 个项目的 DataTable。(您必须弄清楚这部分,因为您没有提及您的应用程序所在的堆栈/语言。)