6 个解决方案
#1
在线等待
#2
declare @spid int
set @spid = 50
dbcc inputbuffer(@spid)
set @spid = 50
dbcc inputbuffer(@spid)
#3
DBCC INPUTBUFFER
显示从客户端发送到 Microsoft® SQL Server™ 的最后一个语句。
语法
DBCC INPUTBUFFER (spid)
参数
spid
是 sp_who 系统存储过程的输出中所显示的用户连接系统进程 ID (SPID)。
结果集
DBCC INPUTBUFFER 返回包含如下列的行集。
列名 数据类型 描述
EventType nvarchar(30) 事件类型,例如:RPC、语言或无事件。
Parameters Int 0 = 文本
1- n = 参数
EventInfo nvarchar(255) 对于 RPC 的 EventType,EventInfo 仅包含过程名。对于语言或无事件的 EventType,仅显示事件的头 255 个字符。
例如,当缓冲区中的最后事件是 DBCC INPUTBUFFER(11) 时,DBCC INPUTBUFFER 将返回以下结果集。
EventType Parameters EventInfo
-------------- ---------- ---------------------
Language Event 0 DBCC INPUTBUFFER (11)
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
说明 在 Windows NT® 上,当两个事件间没有可以显示的事件时,有非常短的过渡期。在 Windows 98 上,事件仅当活动时才显示。
权限
DBCC INPUTBUFFER 权限默认授予 sysadmin 固定服务器角色的成员,该成员可以看到任何 SPID。其他用户可以看到自己拥有的 SPID。权限不可转让。
示例
下例假设有效的 SPID 为 10。
DBCC INPUTBUFFER (10)
显示从客户端发送到 Microsoft® SQL Server™ 的最后一个语句。
语法
DBCC INPUTBUFFER (spid)
参数
spid
是 sp_who 系统存储过程的输出中所显示的用户连接系统进程 ID (SPID)。
结果集
DBCC INPUTBUFFER 返回包含如下列的行集。
列名 数据类型 描述
EventType nvarchar(30) 事件类型,例如:RPC、语言或无事件。
Parameters Int 0 = 文本
1- n = 参数
EventInfo nvarchar(255) 对于 RPC 的 EventType,EventInfo 仅包含过程名。对于语言或无事件的 EventType,仅显示事件的头 255 个字符。
例如,当缓冲区中的最后事件是 DBCC INPUTBUFFER(11) 时,DBCC INPUTBUFFER 将返回以下结果集。
EventType Parameters EventInfo
-------------- ---------- ---------------------
Language Event 0 DBCC INPUTBUFFER (11)
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
说明 在 Windows NT® 上,当两个事件间没有可以显示的事件时,有非常短的过渡期。在 Windows 98 上,事件仅当活动时才显示。
权限
DBCC INPUTBUFFER 权限默认授予 sysadmin 固定服务器角色的成员,该成员可以看到任何 SPID。其他用户可以看到自己拥有的 SPID。权限不可转让。
示例
下例假设有效的 SPID 为 10。
DBCC INPUTBUFFER (10)
#4
sp_who
#5
Transact-SQL 参考
sp_who
提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。
语法
sp_who [[@login_name =] 'login']
参数
[@login_name =] 'login'
是 SQL Server 上的用户登录名。login 的数据类型为 sysname,默认值是 NULL。如果没有指定名称,过程将报告全部活动的 SQL Server 用户。login 也可以是特定进程标识号码 (SPID)。若要返回有关活动进程的信息,请指定 ACTIVE。ACTIVE 从报告中排除等待用户下一个命令的进程。
返回代码值
0(成功)或 1(失败)
结果集
sp_who 返回包含以下信息的结果集。
列 数据类型 描述
spid smallint 系统进程 ID。
ecid smallint 与指定 SPID 相关联的给定线程的执行上下文 ID。
ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。
status nchar(30) 进程状态。
loginame nchar(128) 与特定进程相关联的登录名。
hostname nchar(128) 每个进程的主机或计算机名。
blk char(5) 如果存在阻塞进程,则是该阻塞进程的系统进程 ID。否则该列为零。
当与给定的 spid 相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务返回 '-2'。
dbname nchar(128) 进程使用的数据库。
cmd nchar(16) 为此进程执行的 SQL Server 命令(Transact-SQL 语句、SQL Server 内部引擎处理等)。
sp_who 结果集将根据 spid 值按升序排序。如果是并行处理,则会为特定的 spid 创建子线程。主线程表示为 spid =xxx,并且 ecid =0。其余的子线程同样也是 spid = xxx,但 ecid > 0。这样,将会为该 spid 编号返回多行 — 它们在整个列表中放置该 spid 的位置组合在一起。子线程将随机排列,但父线程除外 (ecid = 0);在该 spid 中,父线程被首先列出。
注释
阻塞进程(可能含有排它锁)是控制其它进程所需要的资源的进程。
在 SQL Server 2000 中,所有孤立 DTC 事务的 SPID 都被赋予值 '-2'。孤立 DTC 事务就是不与任何 SPID 相关联的分布式事务。这样,当某一孤立事务阻塞其它进程时,可由其特殊的 '-2' SPID 值来识别该孤立分布式事务。有关更多信息,请参见 KILL。
SQL Server 2000 保留从 1 到 50 的 SPID 值以便内部使用,而 51 或更大的 SPID 值则代表用户会话。
权限
执行权限默认授予 public 角色。
示例
A. 列出全部当前进程
此示例使用没有参数的 sp_who 报告所有当前用户。
USE master
EXEC sp_who
下面是结果集:
spid ecid status loginame hostname blk dbname cmd
---- ---- ------ ------------ -------- --- ------ -----
1 0 background sa 0 pubs LAZY WRITER
2 0 sleeping sa 0 pubs LOG WRITER
3 0 background sa 0 master SIGNAL HANDLER
4 0 background sa 0 pubs RA MANAGER
5 0 background sa 0 master TASK MANAGER
6 0 sleeping sa 0 pubs CHECKPOINT SLEEP
7 0 background sa 0 master TASK MANAGER
8 0 background sa 0 master TASK MANAGER
9 0 background sa 0 master TASK MANAGER
10 0 background sa 0 master TASK MANAGER
11 0 background sa 0 master TASK MANAGER
51 0 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 2 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 1 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
52 0 sleeping DOMAIN\loginX serverX 0 master AWAITING COMMAND
53 0 runnable DOMAIN\loginX serverX 0 pubs SELECT
(16 row(s) affected)
B. 列出特定用户的进程
此示例显示如何通过登录名查看有关单个当前用户的信息。
USE master
EXEC sp_who 'janetl'
C. 显示所有活动进程
USE master
EXEC sp_who 'active'
D. 通过进程 ID 显示特定进程
USE master
EXEC sp_who '10' --specifies the process_id
请参见
KILL
sp_lock
sysprocesses
系统存储过程
©1988-2000 Microsoft Corporation。保留所有权利。
sp_who
提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。
语法
sp_who [[@login_name =] 'login']
参数
[@login_name =] 'login'
是 SQL Server 上的用户登录名。login 的数据类型为 sysname,默认值是 NULL。如果没有指定名称,过程将报告全部活动的 SQL Server 用户。login 也可以是特定进程标识号码 (SPID)。若要返回有关活动进程的信息,请指定 ACTIVE。ACTIVE 从报告中排除等待用户下一个命令的进程。
返回代码值
0(成功)或 1(失败)
结果集
sp_who 返回包含以下信息的结果集。
列 数据类型 描述
spid smallint 系统进程 ID。
ecid smallint 与指定 SPID 相关联的给定线程的执行上下文 ID。
ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。
status nchar(30) 进程状态。
loginame nchar(128) 与特定进程相关联的登录名。
hostname nchar(128) 每个进程的主机或计算机名。
blk char(5) 如果存在阻塞进程,则是该阻塞进程的系统进程 ID。否则该列为零。
当与给定的 spid 相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务返回 '-2'。
dbname nchar(128) 进程使用的数据库。
cmd nchar(16) 为此进程执行的 SQL Server 命令(Transact-SQL 语句、SQL Server 内部引擎处理等)。
sp_who 结果集将根据 spid 值按升序排序。如果是并行处理,则会为特定的 spid 创建子线程。主线程表示为 spid =xxx,并且 ecid =0。其余的子线程同样也是 spid = xxx,但 ecid > 0。这样,将会为该 spid 编号返回多行 — 它们在整个列表中放置该 spid 的位置组合在一起。子线程将随机排列,但父线程除外 (ecid = 0);在该 spid 中,父线程被首先列出。
注释
阻塞进程(可能含有排它锁)是控制其它进程所需要的资源的进程。
在 SQL Server 2000 中,所有孤立 DTC 事务的 SPID 都被赋予值 '-2'。孤立 DTC 事务就是不与任何 SPID 相关联的分布式事务。这样,当某一孤立事务阻塞其它进程时,可由其特殊的 '-2' SPID 值来识别该孤立分布式事务。有关更多信息,请参见 KILL。
SQL Server 2000 保留从 1 到 50 的 SPID 值以便内部使用,而 51 或更大的 SPID 值则代表用户会话。
权限
执行权限默认授予 public 角色。
示例
A. 列出全部当前进程
此示例使用没有参数的 sp_who 报告所有当前用户。
USE master
EXEC sp_who
下面是结果集:
spid ecid status loginame hostname blk dbname cmd
---- ---- ------ ------------ -------- --- ------ -----
1 0 background sa 0 pubs LAZY WRITER
2 0 sleeping sa 0 pubs LOG WRITER
3 0 background sa 0 master SIGNAL HANDLER
4 0 background sa 0 pubs RA MANAGER
5 0 background sa 0 master TASK MANAGER
6 0 sleeping sa 0 pubs CHECKPOINT SLEEP
7 0 background sa 0 master TASK MANAGER
8 0 background sa 0 master TASK MANAGER
9 0 background sa 0 master TASK MANAGER
10 0 background sa 0 master TASK MANAGER
11 0 background sa 0 master TASK MANAGER
51 0 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 2 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 1 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
52 0 sleeping DOMAIN\loginX serverX 0 master AWAITING COMMAND
53 0 runnable DOMAIN\loginX serverX 0 pubs SELECT
(16 row(s) affected)
B. 列出特定用户的进程
此示例显示如何通过登录名查看有关单个当前用户的信息。
USE master
EXEC sp_who 'janetl'
C. 显示所有活动进程
USE master
EXEC sp_who 'active'
D. 通过进程 ID 显示特定进程
USE master
EXEC sp_who '10' --specifies the process_id
请参见
KILL
sp_lock
sysprocesses
系统存储过程
©1988-2000 Microsoft Corporation。保留所有权利。
#6
谢谢马可!
我在sqlserver查“sql语句”,一直没找到。原来用“最后一个语句”找
我在sqlserver查“sql语句”,一直没找到。原来用“最后一个语句”找
#1
在线等待
#2
declare @spid int
set @spid = 50
dbcc inputbuffer(@spid)
set @spid = 50
dbcc inputbuffer(@spid)
#3
DBCC INPUTBUFFER
显示从客户端发送到 Microsoft® SQL Server™ 的最后一个语句。
语法
DBCC INPUTBUFFER (spid)
参数
spid
是 sp_who 系统存储过程的输出中所显示的用户连接系统进程 ID (SPID)。
结果集
DBCC INPUTBUFFER 返回包含如下列的行集。
列名 数据类型 描述
EventType nvarchar(30) 事件类型,例如:RPC、语言或无事件。
Parameters Int 0 = 文本
1- n = 参数
EventInfo nvarchar(255) 对于 RPC 的 EventType,EventInfo 仅包含过程名。对于语言或无事件的 EventType,仅显示事件的头 255 个字符。
例如,当缓冲区中的最后事件是 DBCC INPUTBUFFER(11) 时,DBCC INPUTBUFFER 将返回以下结果集。
EventType Parameters EventInfo
-------------- ---------- ---------------------
Language Event 0 DBCC INPUTBUFFER (11)
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
说明 在 Windows NT® 上,当两个事件间没有可以显示的事件时,有非常短的过渡期。在 Windows 98 上,事件仅当活动时才显示。
权限
DBCC INPUTBUFFER 权限默认授予 sysadmin 固定服务器角色的成员,该成员可以看到任何 SPID。其他用户可以看到自己拥有的 SPID。权限不可转让。
示例
下例假设有效的 SPID 为 10。
DBCC INPUTBUFFER (10)
显示从客户端发送到 Microsoft® SQL Server™ 的最后一个语句。
语法
DBCC INPUTBUFFER (spid)
参数
spid
是 sp_who 系统存储过程的输出中所显示的用户连接系统进程 ID (SPID)。
结果集
DBCC INPUTBUFFER 返回包含如下列的行集。
列名 数据类型 描述
EventType nvarchar(30) 事件类型,例如:RPC、语言或无事件。
Parameters Int 0 = 文本
1- n = 参数
EventInfo nvarchar(255) 对于 RPC 的 EventType,EventInfo 仅包含过程名。对于语言或无事件的 EventType,仅显示事件的头 255 个字符。
例如,当缓冲区中的最后事件是 DBCC INPUTBUFFER(11) 时,DBCC INPUTBUFFER 将返回以下结果集。
EventType Parameters EventInfo
-------------- ---------- ---------------------
Language Event 0 DBCC INPUTBUFFER (11)
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
说明 在 Windows NT® 上,当两个事件间没有可以显示的事件时,有非常短的过渡期。在 Windows 98 上,事件仅当活动时才显示。
权限
DBCC INPUTBUFFER 权限默认授予 sysadmin 固定服务器角色的成员,该成员可以看到任何 SPID。其他用户可以看到自己拥有的 SPID。权限不可转让。
示例
下例假设有效的 SPID 为 10。
DBCC INPUTBUFFER (10)
#4
sp_who
#5
Transact-SQL 参考
sp_who
提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。
语法
sp_who [[@login_name =] 'login']
参数
[@login_name =] 'login'
是 SQL Server 上的用户登录名。login 的数据类型为 sysname,默认值是 NULL。如果没有指定名称,过程将报告全部活动的 SQL Server 用户。login 也可以是特定进程标识号码 (SPID)。若要返回有关活动进程的信息,请指定 ACTIVE。ACTIVE 从报告中排除等待用户下一个命令的进程。
返回代码值
0(成功)或 1(失败)
结果集
sp_who 返回包含以下信息的结果集。
列 数据类型 描述
spid smallint 系统进程 ID。
ecid smallint 与指定 SPID 相关联的给定线程的执行上下文 ID。
ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。
status nchar(30) 进程状态。
loginame nchar(128) 与特定进程相关联的登录名。
hostname nchar(128) 每个进程的主机或计算机名。
blk char(5) 如果存在阻塞进程,则是该阻塞进程的系统进程 ID。否则该列为零。
当与给定的 spid 相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务返回 '-2'。
dbname nchar(128) 进程使用的数据库。
cmd nchar(16) 为此进程执行的 SQL Server 命令(Transact-SQL 语句、SQL Server 内部引擎处理等)。
sp_who 结果集将根据 spid 值按升序排序。如果是并行处理,则会为特定的 spid 创建子线程。主线程表示为 spid =xxx,并且 ecid =0。其余的子线程同样也是 spid = xxx,但 ecid > 0。这样,将会为该 spid 编号返回多行 — 它们在整个列表中放置该 spid 的位置组合在一起。子线程将随机排列,但父线程除外 (ecid = 0);在该 spid 中,父线程被首先列出。
注释
阻塞进程(可能含有排它锁)是控制其它进程所需要的资源的进程。
在 SQL Server 2000 中,所有孤立 DTC 事务的 SPID 都被赋予值 '-2'。孤立 DTC 事务就是不与任何 SPID 相关联的分布式事务。这样,当某一孤立事务阻塞其它进程时,可由其特殊的 '-2' SPID 值来识别该孤立分布式事务。有关更多信息,请参见 KILL。
SQL Server 2000 保留从 1 到 50 的 SPID 值以便内部使用,而 51 或更大的 SPID 值则代表用户会话。
权限
执行权限默认授予 public 角色。
示例
A. 列出全部当前进程
此示例使用没有参数的 sp_who 报告所有当前用户。
USE master
EXEC sp_who
下面是结果集:
spid ecid status loginame hostname blk dbname cmd
---- ---- ------ ------------ -------- --- ------ -----
1 0 background sa 0 pubs LAZY WRITER
2 0 sleeping sa 0 pubs LOG WRITER
3 0 background sa 0 master SIGNAL HANDLER
4 0 background sa 0 pubs RA MANAGER
5 0 background sa 0 master TASK MANAGER
6 0 sleeping sa 0 pubs CHECKPOINT SLEEP
7 0 background sa 0 master TASK MANAGER
8 0 background sa 0 master TASK MANAGER
9 0 background sa 0 master TASK MANAGER
10 0 background sa 0 master TASK MANAGER
11 0 background sa 0 master TASK MANAGER
51 0 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 2 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 1 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
52 0 sleeping DOMAIN\loginX serverX 0 master AWAITING COMMAND
53 0 runnable DOMAIN\loginX serverX 0 pubs SELECT
(16 row(s) affected)
B. 列出特定用户的进程
此示例显示如何通过登录名查看有关单个当前用户的信息。
USE master
EXEC sp_who 'janetl'
C. 显示所有活动进程
USE master
EXEC sp_who 'active'
D. 通过进程 ID 显示特定进程
USE master
EXEC sp_who '10' --specifies the process_id
请参见
KILL
sp_lock
sysprocesses
系统存储过程
©1988-2000 Microsoft Corporation。保留所有权利。
sp_who
提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。
语法
sp_who [[@login_name =] 'login']
参数
[@login_name =] 'login'
是 SQL Server 上的用户登录名。login 的数据类型为 sysname,默认值是 NULL。如果没有指定名称,过程将报告全部活动的 SQL Server 用户。login 也可以是特定进程标识号码 (SPID)。若要返回有关活动进程的信息,请指定 ACTIVE。ACTIVE 从报告中排除等待用户下一个命令的进程。
返回代码值
0(成功)或 1(失败)
结果集
sp_who 返回包含以下信息的结果集。
列 数据类型 描述
spid smallint 系统进程 ID。
ecid smallint 与指定 SPID 相关联的给定线程的执行上下文 ID。
ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。
status nchar(30) 进程状态。
loginame nchar(128) 与特定进程相关联的登录名。
hostname nchar(128) 每个进程的主机或计算机名。
blk char(5) 如果存在阻塞进程,则是该阻塞进程的系统进程 ID。否则该列为零。
当与给定的 spid 相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务返回 '-2'。
dbname nchar(128) 进程使用的数据库。
cmd nchar(16) 为此进程执行的 SQL Server 命令(Transact-SQL 语句、SQL Server 内部引擎处理等)。
sp_who 结果集将根据 spid 值按升序排序。如果是并行处理,则会为特定的 spid 创建子线程。主线程表示为 spid =xxx,并且 ecid =0。其余的子线程同样也是 spid = xxx,但 ecid > 0。这样,将会为该 spid 编号返回多行 — 它们在整个列表中放置该 spid 的位置组合在一起。子线程将随机排列,但父线程除外 (ecid = 0);在该 spid 中,父线程被首先列出。
注释
阻塞进程(可能含有排它锁)是控制其它进程所需要的资源的进程。
在 SQL Server 2000 中,所有孤立 DTC 事务的 SPID 都被赋予值 '-2'。孤立 DTC 事务就是不与任何 SPID 相关联的分布式事务。这样,当某一孤立事务阻塞其它进程时,可由其特殊的 '-2' SPID 值来识别该孤立分布式事务。有关更多信息,请参见 KILL。
SQL Server 2000 保留从 1 到 50 的 SPID 值以便内部使用,而 51 或更大的 SPID 值则代表用户会话。
权限
执行权限默认授予 public 角色。
示例
A. 列出全部当前进程
此示例使用没有参数的 sp_who 报告所有当前用户。
USE master
EXEC sp_who
下面是结果集:
spid ecid status loginame hostname blk dbname cmd
---- ---- ------ ------------ -------- --- ------ -----
1 0 background sa 0 pubs LAZY WRITER
2 0 sleeping sa 0 pubs LOG WRITER
3 0 background sa 0 master SIGNAL HANDLER
4 0 background sa 0 pubs RA MANAGER
5 0 background sa 0 master TASK MANAGER
6 0 sleeping sa 0 pubs CHECKPOINT SLEEP
7 0 background sa 0 master TASK MANAGER
8 0 background sa 0 master TASK MANAGER
9 0 background sa 0 master TASK MANAGER
10 0 background sa 0 master TASK MANAGER
11 0 background sa 0 master TASK MANAGER
51 0 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 2 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 1 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
52 0 sleeping DOMAIN\loginX serverX 0 master AWAITING COMMAND
53 0 runnable DOMAIN\loginX serverX 0 pubs SELECT
(16 row(s) affected)
B. 列出特定用户的进程
此示例显示如何通过登录名查看有关单个当前用户的信息。
USE master
EXEC sp_who 'janetl'
C. 显示所有活动进程
USE master
EXEC sp_who 'active'
D. 通过进程 ID 显示特定进程
USE master
EXEC sp_who '10' --specifies the process_id
请参见
KILL
sp_lock
sysprocesses
系统存储过程
©1988-2000 Microsoft Corporation。保留所有权利。
#6
谢谢马可!
我在sqlserver查“sql语句”,一直没找到。原来用“最后一个语句”找
我在sqlserver查“sql语句”,一直没找到。原来用“最后一个语句”找