my sql里面允许对自动增量字段赋值,
但是sql server不行,所以你这个问题不好解决呀

解决方案 »

  1.   

    有一个办法,就是当事务失败时把你的ID字段改成非自动增值,然后再改成自动增值,这样你下次插入时,ID就会紧跟你最大的ID增加。
      

  2.   

    你可以把其中一个字段设置为非空或者在except中执行delete from table1 where id =(select max(id) from bable1)
      

  3.   

    能不能这么试试:
    先取@@IDENTITY放到一个变量@x里面,回滚的时候利用DBCC CHECKIDENT ('yourdb', RESEED, @x)强制
      

  4.   

    SET IDENTITY_INSERT 表名 ON 
    go
    --插入语句,注意必须逐一写明各字段,否则提示错误。
    ......
    go
    SET IDENTITY_INSERT 表名 OFF 
    go
      

  5.   

    终于测试成功!
    我试了: sky_blue(老衲) 的方法
    “回滚的时候利用DBCC CHECKIDENT ('yourdb', RESEED, @x)强制”感谢每个朋友的热情回复!
    但暂不结贴(不过一定结),因为对此问还有点疑问:我做的是单机
    测试,不知道多用户并发操作在事务过程中是否会冲突?
    有什么建议吗?大家一起讨论。