可以考虑下面的方法:
CREATE TRIGGER t_test ONauthors
FOR INSERT,UPDATE,DELETE
AS
BEGINDBCC INPUTBUFFER(@@SPID)END

解决方案 »

  1.   

    --有点错误
    CREATE TRIGGER t_test ON authors
    FOR INSERT,UPDATE,DELETE
    AS
    BEGINDBCC INPUTBUFFER(@@SPID)END
      

  2.   

    DBCC INPUTBUFFER(@@SPID)
    是什么?
    我如何得到这个语句字符串变量?
      

  3.   

    CREATE TRIGGER t_test ON authors
    FOR INSERT,UPDATE,DELETE
    AS
    BEGIN
    DECLARE @EventInfo VARCHAR(2000)SET NOCOUNT ON 
    Create TABLE #t_tab (
    EventType VARCHAR(50),
    Parameters INT,
    EventInfo VARCHAR(2000)
    )
    INSERT #t_tab EXEC('DBCC INPUTBUFFER(@@SPID)')SELECT @EventInfo = EventInfo FROM #t_tab --得到这个语句字符串变量
    END
      

  4.   

    wudan8057(在水一方),非常感谢我想问问,EventInfo 不是最多只能放255个字符,有些sql语句有4000长,如何能记录呢?
    谢谢
      

  5.   

    DBCC INPUTBUFFER 返回包含如下列的行集。列名  数据类型  说明  
    EventType
     nvarchar(30)
     事件类型,例如:RPC、Language 或 No Event。
     
    Parameters
     int
     0 = 文本 1- n = 参数
     
    EventInfo
     nvarchar(255)
     对于 RPC 的 EventType,EventInfo 仅包含过程名。对于 Language 或 No Event 的 EventType,仅显示事件的前 255 个字符。