在存储过程中调用存储过程

时间:2011-04-25 17:12:02

标签: sql stored-procedures

我的问题是

在另一个存储过程中的存储过程中调用存储过程。 这种发展何时有害?

为了促进代码重用性,我们将各种insert / update语句封装到存储过程中。因此,如果想要插入A Foo记录,那么您可以将参数传递给CreateFoo存储过程并进行一天的操作。

我们假设 Foo 对象需要创建对象,这些对象也会创建标记对象。

因此,您的存储过程将调用 foo 存储过程,然后调用存储过程,然后调用标记存储过程。

什么时候这不是个好主意,我的其他选择是什么?非常感谢你。 如果可以的话,你能否提供支持你答案的消息来源。再次非常感谢你。

1 个答案:

答案 0 :(得分:3)

这不好或坏 - 如果你需要从另一个程序调用一个程序,就这样做。

在大多数情况下,在存储过程中在数据库级别实现逻辑并不是一种好的方法:

  • 它使您的应用程序依赖于此特定DBMS
  • 在数据库层上扩展应用程序然后在中间层上缩放它会更复杂。
  • 它使调试变得复杂(除非您可以在SP中放置断点)
  • SP语言(SQL)通常不像中间层语言那样灵活且功能强大

但是对于某些应用程序(可能是你的情况),最好使用SP - 当缺点被专业人员打败时:简单快速地实现你熟悉的语言逻辑。