Wind-Eagle

No pain,no gain!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一个触发器

Posted on 2008-05-09 17:36  Andrew Yin  阅读(228)  评论(0)    收藏  举报
ALTER TRIGGER AInsertAffter ON kbsys_KB AFTER INSERT,UPDATE    
AS
begin
    
declare @Keyword Nvarchar(4000)
    
declare @key Nvarchar(4000)
    
declare @t int
    
declare @keyWordCreatedBy Nvarchar(4000)
    
--set @Keyword = inserted.kbKeyWord
    select @Keyword = kbKeyWord from inserted
    
--set @keyWordCreatedBy = inserted.kbCreatedBy
    set @t = CHARINDEX(',',@Keyword)
    
if (@Keyword is nullreturn
    
while(@t <> 0)
    
begin
        
set @key = SUBSTRING(@Keyword,1,@t - 1)
        
set @Keyword = SUBSTRING(@Keyword,@t + 1,len(@Keyword- @t)
        
if not exists (select * from kbsys_KeyWord where keyWordContent = @key)
        
begin
            
insert into kbsys_KeyWord (keyWordContent,keyWordCreatedBy)   
            
select @key,kbCreatedBy from inserted  
        
end
        
-- 找下一个逗号
        set @t = CHARINDEX(',',@Keyword)
    
end
    
if (@Keyword = ''return
    
if not exists (select * from kbsys_KeyWord where keyWordContent = @Keyword)
    
begin
            
insert into kbsys_KeyWord (keyWordContent,keyWordCreatedBy)   
            
select @Keyword,kbCreatedBy from inserted  
    
end
end