分别声明存储过程标题和正文

时间:2012-05-21 09:46:48

标签: sql sql-server sql-server-2008 tsql stored-procedures

我在SQL Server 2008中编写存储过程。我需要创建两个互相使用的过程。

程序A执行B,B执行A。

所以我想我必须先声明程序的标题。我已经通过互联网搜索了但我无法找到答案,我该怎么做。

所以,我的问题是:如何在SQL Server 2008中单独声明存储过程的头和主体?

1 个答案:

答案 0 :(得分:4)

您无法将它们分开,但您可以创建一个SP,该SP会调用另一个尚不存在的SP。

当你运行这个

create procedure TheFirst as
begin
  exec TheSecond
end

和SP TheSecond不存在,您将收到一条消息:

  

模块'TheFirst'取决于丢失的对象'TheSecond'。该   模块仍将创建;但是,它无法成功运行   直到对象存在。

更新

要避免这些消息,您可以先创建一个空proc,然后在脚本中添加代码。

create procedure ProcB as

go

create procedure ProcA as
begin
  exec ProcB
end

go

alter procedure ProcB as
begin
  exec ProcA
end