当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL SERVER 查询正在实行的SQL语句

MSSQL
SQL Server口令 sql server安全性
解决SQL Server虚拟内存不足情况
sql中varchar和nvarchar的区别与使用方法
将count(*)值写入另一个表中的方法
SuperSocket 信息: (SpnRegister) : Error 1355。解决方法
sqlserver 复制表 复制数据库存储过程的方法
关于Select Where In 的排序问题
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
在查询结果中添加一列表示记录的行数的sql语句
一条语句简单解决“每个Y的最新X”的经典sql语句
LINQ to SQL:处理char(1)字段的方式会引起全表扫描问题
SQL2000中改名和删除默认sa帐号的最安全方法
mssql SA帐号的改名和删除
SQLServer中master数据库分析
一道sql面试题附答案
三种实现方法实现数据表中遍历寻找子节点
经典SQL语句大全
实例学习mssql存储过程分析
SQL Server中选出指定范围行的SQL语句代码
[图文]三分钟学会Sql Server的复制功能

MSSQL 中的 SQL SERVER 查询正在实行的SQL语句


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 60 ::
收藏到网摘: n/a

SQL SERVER 查询正在实行的SQL语句的实现代码 具体操作:
根据master.dbo.sysprocesses中的spid和blocked查找当前阻塞语句的主人,然后使用DBCC INPUTBUFFER ()查看阻塞语句。
例子:
打开三个查询分析器 A、B、C
创建一个测试用的表 testDia
Create Table testDia(ID int);
在A执行以下语句:
Begin tran
Insert Into testDia Values(1);
在B执行以下语句:
Select * from testDia
当前情况:B中没有显示结果,显示状态为等待
在C执行以下语句:
declare @spid int, @blocked int
select top 1 @blocked = blocked
from master.dbo.sysprocesses
where blocked > 0
DBCC INPUTBUFFER (@blocked)
技术参考:
DBCC INPUTBUFFER (Transact-SQL)
显示从客户端发送到 Microsoft SQL Server 2005 实例的最后一个语句。
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[WITH NO_INFOMSGS ]
session_id
与各活动主连接关联的会话 ID。
request_id
要在当前会话中精确搜索的请求(批)。
下面的查询返回 request_id:
复制代码
SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spidWITH
启用要指定的选项。
NO_INFOMSGS
取消严重级别从 0 到 10 的所有信息性消息。