CREATE TRIGGER [pr_fqbm] ON [dbo].[Tsc_fq] 
FOR INSERT
ASbegin
 declare   @ID int
declare @lcbh varchar(50) 
select @ID = ID from inserted
SELECT @lcbh=MAX(lcbh) FROM tsc_fq WHERE parent = @ID
set @lcbh=left(@lcbh,len(@lcbh)-2)+right('00'+cast(cast(right(@lcbh,2) as int)+1 as varchar),2)
if @lcbh is null
   SEt  @lcbh=@lcbh+'01'
update tsc_fq  set lcbh=@lcbh where id=@ID
end我新增了一条数据,为什不执行修改呀

解决方案 »

  1.   

    第一次插入的时候lcbh的值是多少?执行了,是你写的语句有问题。
      

  2.   

    如果第一次lcbh没传值的话,那么@lcbh永远为null,也就更新不了了
      

  3.   

    ID数据应该插入减去了吧?是不是lcbh没有被更新?
      

  4.   


    id   lcbh       parent
    1    p00001     0
    2    p0000101   1
    3    p0000102   1
    4    p000010101 2
    5               2现在插入了5(id为自动增加),但lcbh没有更新呀   
      

  5.   


    select @ID = ID from inserted --@ID = 5
    SELECT @lcbh=MAX(lcbh) FROM tsc_fq WHERE parent = @ID --根本没有parent = 5的数据,所以@lcbh为null
      

  6.   

    参照
    http://blog.csdn.net/roy_88/archive/2006/12/01/1424370.aspx