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)

解决方案 »

  1.   

    如果是在查询分析器中查的结果,那么看看是否以下原因造成的:查询分析器->工具->选项->结果->每列最多字符数
      

  2.   

    那是不是我用这种方法对于超过255个字符的SQL语句就无法记录了?
      

  3.   

    只能得到255个字符长度的sql语句,超过的部分得不到,这个 dbcc inputbuffer 的限制
    没办法.
      

  4.   

    sql的sp3中,新增了fn_get_sql来得到sql语句,这样得到的sql语句是完整的但这个又无法用于触发器中,所以没有更好的办法.
      

  5.   

    如果你要记录详细的,建议你用sql的事件探察器(有个缺点就是记录得太详细了)或者用 Log Explorer 这个工具软件来分析数据库日志.