当前位置: 首页 > 面试题库 >

使用DBCC CHECKIDENT重新启动Identity列计数后,是否可以回滚到原始状态?

步嘉德
2023-03-14
问题内容

目前,在某些操作中,我必须删除旧数据并插入新数据。但是我注意到,尽管删除了数据,但identity列并没有重置,而是从其最后一个最大值继续。因此,我使用DBCC
CheckIdent来实现在事务中进行的所有操作。我可以将交易回滚到初始状态吗?DBCC CHECKIDENT会带来任何问题吗?请指导…


问题答案:

下面的测试代码显示可以回滚DBCC操作:

create table #t
(id int identity, val1 int)
go

insert #t (val1)
values (1),(2),(3)

select MAX(id) AS before from #t

begin tran

    delete #t

    dbcc checkident (#t, reseed,0)

    select MAX(id) AS inside_tran from #t

rollback

select MAX(id) as after_rollback from #t
dbcc checkident (#t, noreseed)


 类似资料:
  • 问题内容: 如果我在Thread对象上使用start()并且run()方法返回,是否可以再次调用start()? 例如, 我只是想知道是因为我的代码抛出了IllegalThreadStateExceptions,所以想知道是否是因为您不能执行上述操作。 问题答案: 不,你不能。该方法的Javadoc 告诉您!

  • 我希望容器在计算机重新启动后自动启动,所以我使用'--restart=always'标志,但它并没有像我预期的那样运行。当我重新启动系统时,容器没有启动。 docker日志信息 添加docker ps-a message,$docker ps-a CONTAINER ID IMAGE命令CREATED STATUS PORTS NAMES a1f4d5471b0a mysql:8.0“docker

  • 问题内容: 我需要在Spring Data Repository中使用原始SQL,这可能吗?我看到的所有内容始终都是基于实体的。 问题答案: @Query批注允许通过将nativeQuery标志设置为true来执行本地查询。 引用Spring Data JPA 参考文档。 另外,请参阅本节以了解如何使用命名的本机查询。

  • 第一种方法: SetRebootFlag true IfRebootFlag 0 +2 同时如果有!define MUI_FINISHPAGE_NOREBOOTSUPPORT 记得删掉 第二种方法: 可以跳出窗口询问 MessageBox MB_YESNO|MB_ICONQUESTION|MB_TOPMOST "请重启以便补丁安装完全及垃圾清理完整!" IDNO +2 Reboot

  • 在使用Appium的iOS自动化中,有没有办法执行以下过程? 按Home键。 将应用放在后台。 打开其他应用程序(比如Gmail)- 我试过这些: 但它只是退出我正在自动运行的应用程序(就像),然后当我尝试重新启动时-

  • 问题内容: 我需要在Spring Data Repository中使用原始SQL,这可能吗?我看到的所有内容始终都是基于实体的。 问题答案: @Query批注允许通过将nativeQuery标志设置为true来执行本地查询。 引用Spring Data JPA 参考文档。