2009-08-19 89 views
3

是否有可能检查是否有任何存储过程当前在SQL Server中运行?检查存储过程是否正在运行?

+0

SQL 2000或2005/8?这两种工具非常不同。 – Anon246 2009-08-20 01:04:43

+0

我正在使用SQL Server 2005 – 2009-08-20 05:34:18

+0

可能重复[Sql Server 2000 - 如何找出当前正在运行的存储过程?](http://stackoverflow.com/questions/129086/sql-server-2000-how -can-i-find-out-what-stored-procedures-are-running-currentl) – CodeCaster 2013-11-27 08:03:09

回答

0

管理工作室中有活动监视器。还有sp_who和sp_who2。这些可以让你了解正在运行的内容。但是,如果您需要以编程方式查明某个过程是否“正在进行”,或者为避免再次调用该过程,那么我会考虑在某处标记一个标志,以指示您在开始和结束时设置的“SPIsRunning”程序本身。

0

通过TSQL,您可以尝试评估每个SPID的DBCC INPUTBUFFER的结果,但这样做非常麻烦。

0
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query] 
    FROM sys.dm_exec_query_stats AS deqs 
      CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest 
    WHERE dest.TEXT LIKE '%YOUR OBJECT NAME HERE%'  
ORDER BY deqs.last_execution_time DESC 

http://connectsql.blogspot.com/

+0

这是一个很好的查询,但只会告诉你最后一次启动过程,而不是如果它仍在运行 – 2009-08-19 12:13:52

0

如果你只是想看看活动中使用SQL事件探查器跟踪存储过程起始&完成。也许这对你有帮助。

相关问题