--记录操作的示例--创建记录的日志表
create table t_log(
id int identity(1,1) primary key,
工作站名 nchar(30) not null default host_name(),
操作员 sysname DEFAULT SUSER_SNAME(),
操作时间 datetime default getdate(),
事件类型 nvarchar(30),
参数 int,
执行的语句 nvarchar(255))
go--演示用的数据表
create table test(id int)
go--记录操作的触发器
create trigger t_update on test
for insert,update,delete
as
insert t_log(事件类型,参数,执行的语句) exec('dbcc inputbuffer(@@spid)')
go--初始化表
insert into test values(1)
goupdate test set id=100
go--显示记录情况
select * from t_log
go--删除演示环境
drop table t_log,test

解决方案 »

  1.   

    SQL中,写文本文件还是比较麻烦的,如果你真想完全自己写日志文件,那最好结合扩展DLL来实现.另外,你也可以利用SQL提供的跟踪功能来实现日志记录,具体的参考下面几个存储过程:
    sp_trace_create
    sp_trace_generateevent
    sp_trace_setevent
    sp_trace_setfilter
    sp_trace_setstatus结合这几个函数进行日志记录的查询:
    fn_trace_geteventinfo
    fn_trace_getinfo
    fn_trace_gettable
      

  2.   

    结合扩展Dll怎么写到文件呢?怎么用?
      

  3.   

    我问的是:如何自己编写存储过程,写自己的日志文件(TxT),有人给个清楚点的答案么?谢谢!