我希望在工具/脚本中自动用代码替换对存储过程的调用。最好用一个例子来解释。
我有一个这样的代码,其中存储过程被调用两次
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完成,可以用另一种语言完成。它也不必涵盖所有情况。
答案 0 :(得分:1)
为什么不创建一个名为calculate_and_insert2
的新存储过程,只需更改脚本即可调用新过程。这比你最初的建议更容易出错。