• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
《储备驿站》



                           淡泊以明志,宁静而志远!
博客园    首页    新随笔    联系   管理    订阅  订阅
一个有用的触发器


这个触发器主要是值更改前后的获取,以及字符串分隔

CREATE TRIGGER historyaddress  ON dbo.gdzclist
FOR UPDATE
AS
if UPDATE(chrnowaddress)
begin
declare @chrnowaddress varchar(255),@intID integer,@chrhistoryaddress varchar(500),@regtime datetime,@i integer,@tmptime varchar(500)
select @tmptime=chrnowaddress from inserted
select @chrnowaddress=chrnowaddress, @intID=ID,@chrhistoryaddress=chrhistoryaddress,@regtime=dtmregtime from deleted
if (@chrnowaddress='' )
   return
if (@chrnowaddress=@tmptime)
   return
 if ( rtrim(@chrhistoryaddress+'')=''  or  @chrhistoryaddress is null)
 begin
   select @chrnowaddress=@chrnowaddress+'['+convert(char(4),year(@regtime))+'-'+convert(varchar(2),month(@regtime))+'-'+convert(varchar(2),day(@regtime))+'--'+convert(char(4),year(getdate()))+'-'+convert(varchar(2),month(getdate()))+'-'+convert(varchar(2),day(getdate()))+']'
  end
       else
 begin
    select @i=PATINDEX('%--%', @chrhistoryaddress)
    select @tmptime=substring(@chrhistoryaddress,@i+2,len(@chrhistoryaddress)-@i-2)
      
     WHILE (PATINDEX('%--%', @tmptime)<>0)
  BEGIN
  select @i=PATINDEX('%--%', @tmptime)
  select @tmptime=substring(@tmptime,@i+2,len(@tmptime)-@i-1)
  END
   select @chrnowaddress=@chrhistoryaddress+';'+@chrnowaddress+'['+convert(char(4),year(@tmptime))+'-'+convert(varchar(2),month(@tmptime))+'-'+convert(varchar(2),day(@tmptime))+'--'+convert(char(4),year(getdate()))+'-'+convert(varchar(2),month(getdate()))+'-'+convert(varchar(2),day(getdate()))+']'
 end
update gdzclist set chrhistoryaddress=@chrnowaddress where id=@intID
end

posted on 2005-11-07 12:17  Dansin  阅读(261)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3