想请教一个问题,我有张A表,A表有个自增字段,名称为fid,我在instead of insert 触发器的时候并没有
获取不到该自增数,我是通过游标方式读取每行数据做处理,请问我该如何才能够获取我选则的原始数据行,
 给每行增加一个唯一列?这个不大好,因为数据是程序已经写入的。

解决方案 »

  1.   


    --想干啥?楼主是想获得添加数据的自增fid吗?
    create proc add
    @name varchar(50)
    @fid int output
    as
        insert into a select name
        set @fid=@@identity
        return @fid
      

  2.   

    楼上的,不是,主要的操作是用来发送短信,按照长字符自动切割成70以内的字符
    所以建了触发器来执行,我通过建立instead of insert触发器代替insert语句
    通过游标循环每行,但是inserted里面的记录此时尚未生成这个主键,所以我通过游标读取每行inserted的记录的时候
    我没法获知当前行,例如oracle有个什么rowid之类的,可以通过这个去匹配
      

  3.   

    我想到了,通过
    insert into #
    select *,newid() as fpk
    from inserted
     再循环读取每行就行了
    ,这样就有id了