CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

用触发器做系统日志的问题

楼主iwithyou(革命征服者)2003-06-03 09:59:55 在 MS-SQL Server / 疑难问题 提问

在MSSQL一些表上做trigger,使得操作有关数据时(insert、delete、update等),把用户,类型,内容,时间insert到一个系统表sys_log.  
  问题如下:  
   
  CREATE   TRIGGER   [InsertTrig]   ON   [dbo].[info]    
  FOR   INSERT  
  AS  
  --SELECT   create_by   ,create_on   INTO   (:cb,:co)   FROM   inserted   //   能否做一个变量先存放一些数据?  
  INSERT   INTO   sys_log(operator_type,operator_content,username,operator_time)  
    VALUES(     'INSERT',   SELECT   s_id,create_by   ,create_on   FROM   inserted   )//此处好象不能混用这些语句?  
  问题点数:100、回复次数:5Top

1 楼yelook(香槟酒)回复于 2003-06-03 10:02:33 得分 25

INSERT   INTO   sys_log(operator_type,operator_content,username,operator_time)  
        SELECT     'INSERT',s_id,create_by   ,create_on   FROM   insertedTop

2 楼Myyokel(剑心)回复于 2003-06-03 10:02:50 得分 25

INSERT   INTO   sys_log(operator_type,operator_content,username,operator_time)  
    VALUES(     'INSERT',   SELECT   s_id,create_by   ,create_on   FROM   inserted   )//此处好象不能混用这些语句?  
   
  ---->>  
  INSERT   INTO   sys_log(operator_type,operator_content,username,operator_time)  
    SELECT   'INSERT'   s_id,create_by   ,create_on   FROM   insertedTop

3 楼Happiness(乐乐)回复于 2003-06-03 10:04:07 得分 25

CREATE   TRIGGER   [InsertTrig]   ON   [dbo].[info]    
  FOR   INSERT  
  AS  
  INSERT   INTO   sys_log(operator_type,operator_content,username,operator_time)  
    select   'INSERT',   s_id,suser_name()   ,getdate()   FROM   inserted    
  go  
  Top

4 楼wgy2008(北极光)回复于 2003-06-03 10:05:23 得分 25

create   trigger   detect   on   table  
  For   Delete,update  
  AS  
  insert   TestLogs  
  select   Id,                               --被删除记录的Id  
      opTime=GetDate(),             --删除日期时间  
      HostName=Host_Name(),     --主机名称  
      AppName=App_Name(),         --客户机使用的应用程序  
      UserName=sUser_Name()     --用户名  
  from   DELETED  
   
  Top

5 楼iwithyou(革命征服者)回复于 2003-06-03 10:22:00 得分 0

INSERT   INTO   sys_log(operator_type,operator_content,username,operator_time)  
    select   'INSERT',   s_id,create_by   ,create_on   FROM   inserted    
   
  如果想在operator_content中加些内容,如"information"。  
  可否这样:select    
                  ......  
                  content="information"   +   s_id  
                  .......  
  from   insertedTop

相关问题

  • 用触发器记录流水日志问题?
  • oracle触发器中如何获取系统用户名?
  • 没有用过触发器!
  • 如何禁用触发器
  • 用delphi创建触发器
  • 触发器应用问题?
  • 怎样使用MSSQL 2000 的删除触发器建立删除日志。---过江项羽
  • 触发器代码的优化,另外发现触发器动作频繁,系统内存占用严重,求解决办法
  • 求建立触发器日志的问题
  • 哪位高手知道如何在SQLServer触发器中调用系统存储过程?

关键词

  • operator
  • inserted
  • into sys
  • trigger
  • username
  • create
  • content
  • log
  • time
  • select

得分解答快速导航

  • 帖主:iwithyou
  • yelook
  • Myyokel
  • Happiness
  • wgy2008

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo