如何在SQL Server 2008中查看当前正在运行的特效的参数

问题描述:

我正试图解决在新SQL Server上弹出的问题。在查看正在运行的进程时(sp_who2),我无法确定proc是以什么参数开始的。如何在SQL Server 2008中查看当前正在运行的特效的参数

我可以用找到PROC名称:DBCC INPUTBUFFER (spid)

我甚至可以找到些有用的信息,但我看不到的方式来显示参数。

http://sqlserverpedia.com/blog/sql-server-bloggers/sql-server-%E2%80%93-get-last-running-query-based-on-spid/

我知道我可以看到的参数,如果我做了跟踪,但是,这并不在这种情况下帮助。

+0

您有权限做“sp_who2”和“dbcc”但不运行跟踪? – 2011-01-10 17:58:14

您需要检查Adam Machanic的SP_WhoisActive,它可以为您提供所需的所有信息,它可以在xml中为您提供整个查询,因此您只需点击它即可查看正在运行的内容。
http://sqlblog.com/files/folders/release/entry29675.aspx

+0

我刚刚尝试过`create proC#foo @a int as waitfor delay '01:00'` then`exeC#foo 1`我看不到输出中任何位置的参数值。 – 2011-01-11 03:33:16

编辑:我发现这个有趣的代码:select dest.* from sys.dm_exec_requests as der cross apply sys.dm_exec_sql_text (der.sql_handle) as dest where session_id = @spid。请尝试。

http://msdn.microsoft.com/en-us/library/ms181929%28v=SQL.100%29.aspx

它看起来就像你不能无迹可寻做到这一点。 很少有更多文章有类似的问题:Can parameterized queries be fully captured using DBCC INPUTBUFFER?

你可以使用DBCC INPUTBUFFER(spid),但只有当sp从SSMS启动时。

看看这个http://sqlblog.com/tags/Who+is+Active/default.aspx。 如果您无法将此sp添加到您的框中,将会有可能有用的代码。

编辑:它只会显示你的sp正在运行的语句,而不是参数。

+0

您最近的编辑仍然只显示`create proc`定义,而不是传递的参数。 – 2011-01-11 00:23:30

您可以更改存储的proc来记录参数吗?也许在表格中插入诊断参数?