0

ストアド プロシージャの呼び出しをコードで自動的に置き換えるツール/スクリプトが必要です。例を挙げて説明する方がよい。

ストアドプロシージャが2回呼び出されるこのようなコードがあります

declare @x int, @y int
set @x = 10 
exec @y = calculate_and_insert @x

set @x = @y 
exec @y = calculate_and_insert @x

呼び出されたプロシージャには次のようなコードがあります。

create stored procedure calculate and insert @in int
as 
   declare @x int
   set @x = 10
   return @x + @in

外側のスコープに同じ名前の変数があることを確認してください

私は次のようなものを生成したいと思います:

declare @x int, @y int
set @x = 10 
   declare @cai1_in int
   set @cai1_in = @x

   declare @cai1_x int
   set @cai1_x = 10
   set @y = @cai1_x + @cai1_in

set @x = @y 
   declare @cai2_in int
   set @cai2_in = @x

   declare @cai2_x int
   set @cai2_x = 10
   set @y = @cai2_x + @cai2_in

たぶん、誰かがすでにそのようなことをする必要がありました。その理由は、本番環境では変更したくないストアド プロシージャがたくさんあるが、それらの新しいバージョンを実行して結果を確認したいからです。テストでそれらを再コーディングし、スクリプトを生成します。

SQL を使用する必要はありません。別の言語で行うことができます。また、すべてのケースをカバーする必要はありません。

4

1 に答える 1

1

calculate_and_insert2と呼ばれる新しいストアド プロシージャを作成し、新しいプロシージャを呼び出すようにスクリプトを変更してみませんか。これにより、最初の提案よりもエラーが発生しにくくなります。

于 2013-10-18T22:13:45.657 に答える