繁体   English   中英

SQL Server 2008-为表的每一行调用存储过程的最佳实践

[英]SQL Server 2008 - Best practice to call a stored procedure for each row of a table

我有一个存储过程,应该执行以下操作:

  1. 执行业务逻辑并选择“订阅ID”列表。
  2. 对于以上选择的每一行,调用单独的存储过程以获取已为该特定订阅ID订阅的代理列表。
  3. 将每行的结果插入其他两个表中。

现在,我对第2点使用While循环,并使用IF条件语句为不同的Subscription ID调用不同的SP。

注意:-在第二步中调用的存储过程的名称是动态的,并且随订阅ID的不同而不同。 虽然不同的SP返回的结构是相同的。 我无法控制这些程序,也无法将这些procs转换为TVF,因此实现Cross Apply(如果它能达到目的)将是一个问题。

我的问题是,有什么方法可以通过遵循基于集合的方法来避免这种迭代方法并实现相同的功能?

在我解释了最佳实践以及在第2点中将存储过程转换为TVF的需求之后,客户已经同意了,因此,现在可以使用TVF和Cross Apply解决该问题。 谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM