4

SQL Server 2005 活动监视器中有一个似乎一直在运行的进程。双击它会产生以下查询:

CREATE TABLE #tmpDBCCinputbuffer ([EVENT TYPE] NVARCHAR(512), [PARAMETERS] INT, [EVENT Info] NVARCHAR(512)) INSERT INTO #tmpDBCCinputbuffer EXEC ('DBCC INPUTBUFFER(58)') SELECT [EVENT Info] FROM #tmpDBCCinputbuffer

知道它是什么吗?危险吗?

4

3 回答 3

6

具有讽刺意味的是,它是您用来查看在连接上运行的最后一个查询的查询,这就是您要查看所有连接的最后一个查询是什么的操作。包括您用来查看所有这些连接的连接。

需要的时候头晕的表情包在哪里?

于 2009-04-16T17:08:00.000 回答
0

http://msdn.microsoft.com/en-us/library/ms187730.aspx

来自 SQL Server 开发人员中心的报价

“DBCC INPUTBUFFER 权限默认仅授予 sysadmin 固定服务器角色的成员,他们可以看到任何 SPID。其他用户可以看到他们拥有的任何 SPID。权限不可转让。” ( http://msdn.microsoft.com/en-us/library/aa258826(SQL.80).aspx )

于 2009-04-16T17:06:01.580 回答
0

我只想分享另一个答案,进一步解释尼尔 N 的答案。

DBCC INPUTBUFFER(spid) 命令将返回针对指定 SPID 执行的最新批处理的文本。当您双击活动监视器中的一行(或右键单击并选择“详细信息”)时,SQL Server 在幕后运行您在上面的帖子中引用的命令(替换所选行的 SPID - 61 in您的示例)返回针对连接发出的最新批次。在您的示例中,批次实际上恰好是 CREATE TABLE 等...由活动监视器发出以返回最新批次的批次!

克里斯·豪沃斯https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6bbe405b-b7d8-4f97-9150-cf03c59d4fe3/process-wont-die?forum=sqldatabaseengine

数字 58 是它始终返回的值,因为它是它的进程 ID,它是您运行的最后一个进程!

于 2015-01-20T03:02:41.290 回答