..... DECLARE @CURRENTIDENT INT .................. IF @@ERROR<>0 begin set @CURRENTIDENT = (SELECT MAX(ID) FROM YOURTABLE) dbcc checkIdent(yourtable,Reseed,@CURRENTIDENT) rollback tran end else ....
to xzq111 DBCC CHECKIDENT('t_pay_type',RESEED,8) 执行没改变数据啊
insert时没插那个字段,以前也没碰过,今天不知怎么回事
--试试这个恢复.
DBCC CHECKIDENT (表名, RESEED, 1) --1就是重新从1开始
DBCC CHECKIDENT('t_pay_type',RESEED,1)
返回结果,库中数据没变
检查标识信息: 当前标识值 '8',当前列值 '1'。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
sql server是不会出现你说的情况的,除非有人删掉数据
我知道你说的那种方法,但觉得比较麻烦
标识这种问题,以前用的好好的,这次不知怎么回事,会不会与设置有关
那identity不会产生回滚,有什么解决办法,谢了
DECLARE @CURRENTIDENT INT
..................
IF @@ERROR<>0
begin
set @CURRENTIDENT = (SELECT MAX(ID) FROM YOURTABLE)
dbcc checkIdent(yourtable,Reseed,@CURRENTIDENT)
rollback tran
end
else
....
DBCC CHECKIDENT('t_pay_type',RESEED,8)
执行没改变数据啊
在T-SQL执行,如果成功,你再插入数据,这条数据的值应该是9,不可能没有改变。我上面那段代码中执行dbcc是为了解决事务错误是identity无法回滚的问题。
我试试,先谢了