You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2014执行sys.dm_exec_input_buffer查询报错:无效对象名'sys.dm_exec_input_buffer'

解决SQL Server 2014中找不到sys.dm_exec_input_buffer的问题

哦,这个问题我太熟悉了——你用的SQL Server 2014根本不支持sys.dm_exec_input_buffer这个动态管理视图(DMV)!它是SQL Server 2016及更高版本才新增的功能,所以系统才会抛出"Invalid object name 'sys.dm_exec_input_buffer'"的错误。

在SQL Server 2014里,要查看当前会话的输入缓冲区内容,有两个靠谱的替代方案:

方案1:使用传统的DBCC命令

这是最直接的方式,语法简单,输出清晰:

DBCC INPUTBUFFER(@@SPID);

执行后会返回当前会话最后执行的SQL语句,以及对应的事件类型。

方案2:用DMV组合实现表格式输出

如果需要把结果以表的形式返回(方便后续关联查询或处理),可以结合sys.dm_exec_requests和sys.dm_exec_sql_text来实现:

SELECT 
    est.text AS input_buffer_content
FROM 
    sys.dm_exec_requests er
CROSS APPLY 
    sys.dm_exec_sql_text(er.sql_handle) est
WHERE 
    er.session_id = @@SPID;

这个查询会直接返回当前会话正在执行的完整SQL文本,和sys.dm_exec_input_buffer的核心功能一致。

权限注意事项

不管用哪种方案,你都需要具备VIEW SERVER STATE权限,或者ALTER ANY CONNECTION权限才能正常执行这些命令哦。

内容的提问来源于stack exchange,提问作者user11100105

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 12:17:48