将许多存储过程的“功能”导出到脚本

时间:2014-04-25 18:37:26

标签: sql-server tsql stored-procedures

我有大量存储过程(200+),它们都收集临床数据并将结果插入到公共表中。每个存储过程接受相同的单个参数ClientID,然后编译诊断结果列表并将其插入主表。

我将每个临床测试分成单独的存储过程,但正如我在previous SO question中所描述的那样,这批存储过程的执行将CPU固定为100%,并在最终失败之前持续数小时。这使我想要创建一个包含存储过程的所有功能的脚本。你为什么问?好吧,因为它有效。我宁愿保留存储过程中的逻辑,但直到我能够弄清楚为什么存储过程如此缓慢和失败,我需要继续使用"脚本"方法

所以,我要做的是采取所有存储过程并找到一种方法来#34;脚本"它们的功能是单个SQL脚本。我可以使用" Tasks =>生成脚本"向导,但结果包含我不需要的所有Create ProcedureBegin以及End功能。

1 个答案:

答案 0 :(得分:0)

在我使用的工作室版本等中,有一些选项可以控制是否编写“if exists statement”。

如果你只是想在不使用create语句的情况下捕获procs,那么你就可以轻松地使用自己的spig,sp_helptext proc

例如,我创建了这个proc

create proc dummy (
@var1 int
, @var2 varchar(10)
) as
begin
return 0
end

当我运行sp_helptext dummy时,我得到与输出完全相同的东西。评论也将包括在内

我不知道任何工具会在没有create的情况下返回“contents”,因为形式参数是create或alter语句的一部分。这可能会让你使用perl,python,无论是什么来复制create语句 - 你都会丢失参数 - 尽管我认为你可以将它们改成注释。