1

SQL Server 2008 でストアド プロシージャを作成しています。相互に使用する 2 つのプロシージャを作成する必要があります。

プロシージャー A が B を実行し、B が A を実行します。

したがって、最初にプロシージャのヘッダーを宣言する必要があると思います。インターネットで検索しましたが、どうすればいいのか答えが見つかりません。

だから、私の質問は: SQL Server 2008 でストアド プロシージャのヘッダーと本体を別々に宣言するにはどうすればよいですか?

4

1 に答える 1

4

それらを分離することはできませんが、まだ存在していない別の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
于 2012-05-21T09:50:36.687 に答える