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

MSSQL
SQl 跨服务器查询语句
sql2005 HashBytes 加密函数
防止SQLSERVER的事件探查器跟踪软件
Excel导入Sqlserver数据库脚本
sql cast,convert,QUOTENAME,exec 函数学习记录
select into 和 insert into select 两种表复制语句
sqlserver 日志恢复方法(搞定drop和truncate)
海量数据库查询语句
DBCC CHECKIDENT 重置数据库标识列从某一数值开始
MSSQL 数据库同步教程
sql 语句中的 NULL值
判断一个表的数据不在另一个表中最优秀方法
SQL货币数字转英文字符语句
executesql 存储过程
sql 查询结果合并union all用法_数据库技巧
SQLServe 重复行删除方法
SQLServer 数据修复命令DBCC一览
SQLSERVERS 数据整理方法
根据多条件查询临时表 想得到不同结果集的方法
sqlServer 获取汉字字串的拼音声母

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 42 ::
收藏到网摘: 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 的所有信息性消息。