sql server删除了有自增id的记录怎么回滚回去

足球不是方的 2016-05-27 03:03:58
1.会员表a 里面有字段id,为自增id
2.删除了800万数据
3.删除的备份表c 是select * into 进去的

现在要还原这800万数据,id也要还原成原来的值

应该怎么做?
不能关掉自增id,因为是生产库,时刻有数据插入。


高手求教,急!
...全文
514 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-05-27
  • 打赏
  • 举报
回复
当前会话有效 不影响生产环境,把ID重置 DBCC CHECKIDENT ("表名", RESEED, 值);--指定值>备份表的值 你可用导入导出,或设置标识列为允许将显式值插入到表的标识列中,用语句新增 维护表标识列连续性可参照用触发器 http://blog.csdn.net/roy_88/article/details/1424370
足球不是方的 2016-05-27
  • 打赏
  • 举报
回复
SET IDENTITY_INSERT m_membermain ON; 这个设置是在当前进程有效 其它进程还是可以按正常走的。 感谢,结贴
中国风 2016-05-27
  • 打赏
  • 举报
回复
标识列是回滚不了的
spiritofdragon 2016-05-27
  • 打赏
  • 举报
回复
肯定会影响别人插入,但 set identity_insert test on set identity_insert test off 是必须的。 你都能在生产库里随便删800万数据,停一会网站又能怎么着。发个公告,维护网站。
足球不是方的 2016-05-27
  • 打赏
  • 举报
回复
set identity_insert test on insert into test(id, name) values(1,'xahng') set identity_insert test off 这样做会影响其他人插入这个张表吗? 生产库上,每分钟都会往这张表插数据,如果我set identity_insert test on 了,那其他方式插入这张表时不是会报错吗? 因为正常的插入是insert into test( name) values('xahng') 还有没有其他方法
卖水果的net 2016-05-27
  • 打赏
  • 举报
回复

create table test(id int identity, name varchar(10))
go
set identity_insert test on 
insert into test(id, name) values(1,'xahng')
set identity_insert test off
go
select * from test 
go
drop table test 
go

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧