sqlserver执行多个存储过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver执行多个存储过程相关的知识,希望对你有一定的参考价值。

我有5个存储过程,用select name from sysobjects where name like 'P_DW_%'可查询出我的5个存储过程,现在我想exec这5个,怎么实现
不是直接exec 这5个,是类似exec (select name from sysobjects where name like 'P_DW_%'),然后他就自动执行5个存储过程了。

我学得你这个可以试试 union ,sql1 后面直接跟 union 在接sql2,查询出来的结果是sql1和sql2的集合,可以试试 参考技术A 重新写个存储过程,写个循环就好了追问

不行,那select语句以后查出来是会变的,或者你写一下出来看看呢?

追答

define prosql lvarchar(5000);
define v_sql varchar(200);
foreach
select name
into v_sql
from sysobjects where name like 'P_DW_%'
let prosql = "execute procedure "|| prosql; --执行语句,如果需要传参的话,可以接着拼
execute immediate prosql;
end foreach ;
没有执行,大概就是这个意思了

追问

语法好像不是sqlserver的?

追答

我现在用的是informix ,
意思是这样的,sql语句都是相通的 我只是提供下思路,希望对你有用

sqlserver 怎么看存储过程的上次执行时间

一般来说,最好记录日志(专门的日志表),日志中有datetime列

在存储过程执行前,记录一下日志、存储过程执行完,记录一下日志。

这样就可以计算其执行的时间了,

并且还可以在执行过程中记录一些重要的信息。
参考技术A 打开企业管理器--控制台目录—sqlserver 组—管理--SQL server日志 参考技术B 打开企业管理器--控制台目录—sqlserver 组—管理--SQL server日志 参考技术C  在“跟踪”  工具中,有专门的 可以查看。 参考技术D 你有表记录它每次的执行时间吗?

以上是关于sqlserver执行多个存储过程的主要内容,如果未能解决你的问题,请参考以下文章

SQL server简单的存储过程问题?

sql存储过程有什么用

sqlserver 怎么看存储过程的上次执行时间

sqlserver 链接服务器调用存储过程

怎样让sqlserver后台定时执行某个存储过程

sqlserver2000定时执行存储过程,出现重复数据