楼上说得对,在Mssql中,设成标识列,取@@IDENTITY的值就可以了。

解决方案 »

  1.   

    我的意思就是不用IDENTITY,因为我要实现的功能是不能用IDENTITY的!!!
    还又谁有好办法!!!!!!!159分啊
      

  2.   

    SQL2000 我没有写过触发器,要是ORACLE的话,我可以帮忙
      

  3.   

    试一下这个:create trigger tr_hehe_Insert
    on hehe
    for insert
    asdeclare @Maxid int
    declare @i int
    declare @id int
    declare @Name varchar(50)select @Maxid=max(id) 
    from hehe h
    where not exists (
    select * from inserted i
    where i.id=h.id
    and i.name=h.name
    )select @i=1
    declare cur insensitive cursor for 
    select id,Name from inserted for read onlyopen curfetch next from cur into @Id,@Name
    while( @@fetch_status <> -1 )
    begin
    update hehe
                set id=@MaxId+@i
                where id=@id and name=@Name
    select @i=@i+1
    fetch next from cur into @Id,@Name
    endclose cur
    deallocate curgo
      

  4.   

    SQL7。0中的触发器就是INSERT后触发器, 可以对你刚插入的记录进行修改. 看如下的例子:要求TableA表的行号字段的默认值为 -1. 
    CREATE TRIGGER [TRI_TableA_INS] ON TableA
    FOR INSERT 
    ASDECLARE @ROWN INT SELECT @ROWN = @@ROWCOUNT
    IF @ROWN = 0
        RETURNIF @ROWN > 1
    BEGIN
        ROLLBACK TRANSACTION
        RAISERROR ('一次只能填加一条记录!',16,10);
        RETURN
    ENDDECLARE @MXCOUNT INT SELECT @MXCOUNT=COUNT(*) FROM TableA WHERE 单据号 IN (SELECT 单据号 FROM INSERTED)UPDATE TableA SET 行号=@MXCOUNT WHERE 行号=-1RETURN