Sql:用存储过程代码替换存储过程调用的脚本

时间:2013-10-18 21:20:30

标签: sql sql-server stored-procedures sql-server-2000

我希望在工具/脚本中自动用代码替换对存储过程的调用。最好用一个例子来解释。

我有一个这样的代码,其中存储过程被调用两次

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完成,可以用另一种语言完成。它也不必涵盖所有情况。

1 个答案:

答案 0 :(得分:1)

为什么不创建一个名为calculate_and_insert2的新存储过程,只需更改脚本即可调用新过程。这比你最初的建议更容易出错。