例子1:
Trigger写一下log,看看是哪个sp修改的
CREATETRIGGER [dbo].[Trigger_Test] ON [dbo].[Test1122]
FORUPDATE
AS
SET nocount ON
--用临时表保存exec('DBCCINPUTBUFFER...')的返回值
CREATE TABLE #t
(
EventType VARCHAR(50) ,
Parameters INT ,
EventInfo VARCHAR(6000)
)
--DBCCINPUTBUFFER需要参数spid
DECLARE @spid VARCHAR(20)
SET @spid = CAST(@@spid AS VARCHAR)
INSERT #t
EXEC ( 'DBCC INPUTBUFFER (' + @spid + ')'
)
INSERT Test_Log
( AppName ,
Sql ,
UserName ,
HostName ,
Time
)
SELECT APP_NAME() , --应用程序名,比较有用,你可以发现是否有用查询分析器修改数据的
EventInfo , -- SQL语句,主要用来发现程序错误
SYSTEM_USER , --用户名
HOST_NAME() , --主机名
GETDATE() --发生时间
FROM #t
go