在一个自增字段的表中进行Insert into操作,如果发生错误,怎样才能保证自增字段不改变? my sql里面允许对自动增量字段赋值,但是sql server不行,所以你这个问题不好解决呀 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有一个办法,就是当事务失败时把你的ID字段改成非自动增值,然后再改成自动增值,这样你下次插入时,ID就会紧跟你最大的ID增加。 你可以把其中一个字段设置为非空或者在except中执行delete from table1 where id =(select max(id) from bable1) 能不能这么试试:先取@@IDENTITY放到一个变量@x里面,回滚的时候利用DBCC CHECKIDENT ('yourdb', RESEED, @x)强制 SET IDENTITY_INSERT 表名 ON go--插入语句,注意必须逐一写明各字段,否则提示错误。......goSET IDENTITY_INSERT 表名 OFF go 终于测试成功!我试了: sky_blue(老衲) 的方法“回滚的时候利用DBCC CHECKIDENT ('yourdb', RESEED, @x)强制”感谢每个朋友的热情回复!但暂不结贴(不过一定结),因为对此问还有点疑问:我做的是单机测试,不知道多用户并发操作在事务过程中是否会冲突?有什么建议吗?大家一起讨论。 语句优化 怎样得到游标计算后的结果集 各位大侠~如何进行不同文件的差异备份还原?? SQL 查询语句 注释 这种插入到一个变量中去的功能可否实现! 在SQL查询中,如何在结果集中,计算一条记录具体重复多少次? 我有一个email.sql在查询分析器里面,执行email.sql,不是得选一个数据库吗?可是这2句话有问题,我是先创建EMall也报错,在master里不创 数据存储保留关联属性问题 请问如何在VC中通过ODBC or OLEDB连接oracle8数据库? 请问从客户端连ORACLE8i需要哪些东西?怎么配置? sql中的外键索引问题 ,急用,一定给分 sql6.5的问题!
先取@@IDENTITY放到一个变量@x里面,回滚的时候利用DBCC CHECKIDENT ('yourdb', RESEED, @x)强制
go
--插入语句,注意必须逐一写明各字段,否则提示错误。
......
go
SET IDENTITY_INSERT 表名 OFF
go
我试了: sky_blue(老衲) 的方法
“回滚的时候利用DBCC CHECKIDENT ('yourdb', RESEED, @x)强制”感谢每个朋友的热情回复!
但暂不结贴(不过一定结),因为对此问还有点疑问:我做的是单机
测试,不知道多用户并发操作在事务过程中是否会冲突?
有什么建议吗?大家一起讨论。