CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

关于触发器的超难问题,请高手帮忙,对不起,只有二○分了。

楼主pass2005(我自横刀向天笑,去留肝胆两昆仑)2005-02-02 10:44:50 在 MS-SQL Server / 基础类 提问

我有2个问题:  
  1。我写了一个触发器,记录某个表某些字段的值变更时,将变更的记录组合成一个串,存在一个字段里,因为是后来修改的记录就排在这个串的后面,有什么办法让后改的内容显示放在前面呢。那个字段的值要类似于如下:  
  2003-12-30修改了如下内容:修改为:“”  
      通讯地址原为:北京市朝阳区东土城路建达大厦1519  
  2003-08-06修改了如下内容:  
        其中:专职原为:10   修改为:“”  
        机构总人数原为:32   修改为:“”  
  2003-07-23修改了如下内容:  
        有效期起始原为:2001-07-20   修改为:“”  
        有效期终止原为:2003-07-19   修改为:“”  
  我目前的结果是最新的改动日期在最后,有没有办法让这个字段的值向上面那样显示。  
  2。客户还要求显示是哪个用户操作的,就是在上面的那个字段里显示,  
   
        小张2003-12-30修改了如下内容:修改为:“”  
                        通讯地址原为:北京市朝阳区东土城路建达大厦1519  
        小王2003-08-06修改了如下内容:  
                      其中:专职原为:10   修改为:“”  
                      机构总人数原为:32   修改为:“”  
  这个用户名如何从程序里传到触发器里呢。  
  请大家帮帮忙,我头都大了? 问题点数:0、回复次数:1Top

1 楼pass2005(我自横刀向天笑,去留肝胆两昆仑)回复于 2005-02-02 10:52:57 得分 0

触发器代码入下:  
  CREATE   trigger   tri_updateAppraiserDw   on   dbo.AppraiserInfo    
  for   update    
  as    
  begin  
              declare   @str   varchar(4000)  
                            declare   @strTitle   varchar(50)  
                            declare   @OldDw   varchar(100)  
                            declare   @NewDw   varchar(100)  
  IF   NOT   UPDATE(DwID)    
                                        RETURN  
                            set   @str=''  
        set   @strTitle='<br>'+convert(varchar(20),getdate(),120)+'修改了如下信息:'  
  if   update(DwID)  
                                                        select     @OldDw=t.CompanyName     from   deleted   d,DepartmentInfo   t   where       t.iD=d.DwID    
                                                        select     @NewDw=t.CompanyName     from   inserted   i   ,DepartmentInfo   t   where       t.iD=i.DwID    
  select     @str=@str+'<br>&nbsp;&nbsp;执业单位由'''+@OldDw+'''修改为'''+@NewDw+''';'   from   deleted   d,inserted   i   where   i.id=d.id     and   i.DwID<>d.DwID  
   
   
   
   
  if   @str<>''  
   
  update   a   set   a.ZhiDanChange=convert(varchar(8000),isnull(a.ZhiDanChange,''))+'       '+@strTitle+@str,a.ChangeDay=convert(varchar(20),getdate(),120)       from   AppraiserInfo   a,deleted   b   where   a.id=b.id  
   
   
   
  end  
   
   
   
   
   
   
   
  Top

相关问题

  • 触发器,有点难度
  • 关于触发器的难题~
  • 触发器难题!!!非高手勿进!!!
  • 一个触发器来写的难题
  • 关于oracle的触发器难题
  • 超级郁闷,触发器的执行问题,急,在线等
  • 超级奇怪的问题:自动屏蔽触发器。
  • ORACLE触发器中难道不能用循环?
  • 各位高手?请教触发器的难题?
  • 触发器的问题,也许很困难的哦!!!!在线!!

关键词

  • 修改
  • 字段
  • 内容
  • 触发器
  • dwid
  • newdw
  • olddw
  • strtitle
  • 如下内容
  • varchar

得分解答快速导航

  • 帖主:pass2005

相关链接

  • SQL Server类图书

广告也精彩

反馈

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