现在遇到一个自动编号的问题:    现在新建了一个表 table1 , 里面有一个字段num ,数据类型为int ,现在需要做到的效果是,每次向表中插入数据的时候,取最大值,然后加1 ,    然后在删除的时候,如果num中存在这个号码,就不能删除!!!现在要使用触发器来做,,,请问如何实现!请大家发表下意见!

解决方案 »

  1.   

    然后在删除的时候,如果num中存在这个号码,就不能删除!!! 
    什麼意思?
    不存在還刪什麼~~?
      

  2.   

    需求描述不清啊.删除table1记录的时候,num值已经就是不为空的值了,如何说"然后在删除的时候,如果num中存在这个号码,就不能删除!!!" ??
      

  3.   

    CREATE TRIGGER trgIns ON Table1
    FOR INSERT
    AS
       DECLARE @MaxNum INT
       SET @MaxNum=(SELECT MAX(num) FROM Table1)   UPDATE Table1
       SET    @MaxNum = Num = @MaxNum+1
       FROM   Table1 a,inserted b
       WHERE  a.主键=b.主键
             
      

  4.   

    --试一下
    create trigger yourTrigger on table1
    instead of insertdeclare @maxCount int
    declare @para1    nvarchar(...)select @para1=filedX ... from inserted
    select @maxCount = max(num) from table1set @maxCount = @maxCount + 1;insert into table1(num, fieldX...) values(@maxCount, @para1...)
      

  5.   

    creat trigge 触发器名
    ON 表
    after insert 
    as
    declare @maxnum int,
    @numcount int
    set @numcount = 0
    select @maxnum = max(num) +1 from 表select @numcount=count(*) from where num = @maxnumif @numcount>0
    删除操作!