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

时间:2014-01-07 07:34:06

标签: sql sql-server stored-procedures

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

  1. 执行业务逻辑并选择Subscription Id列表。
  2. 对于上述选择的每一行,调用单独的存储过程以获取为该特定订阅ID订阅的代理列表。
  3. 将结果插入另外两个表中的每一行。
  4. 现在,我在第2点使用了While循环,并使用IF条件语句为不同的订阅ID调用不同的SP。

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

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

1 个答案:

答案 0 :(得分:0)

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