在sql 查询分析器中运行update过程中点击停止,数据是否会回滚呢?

woodsonv 2008-07-01 09:41:47
大师们,你们好!请教一个问题,我的数据库大概有56万左右条记录,昨天因为一次失误,本想更新其中一条记录的某个字段值,使用了update table set BussStatus=1 后面忘了跟查询条件了,执行后发现不对了,赶紧点击查询分析器中的停止按钮(取消执行查询),后来停止了,然后我有几个担心和疑问一直放心不下:
1、我担心这样会不会已经更改了数据库里的其它数据了?或者是否停止后查询等于并未执行update或者部分记录已修改了但是停止后会回滚?不是太懂SQL查询分析器的运行机制。
2、我记得update如果没有跟任何条件,应该是默认从第一条记录开始执行update的(我的数据表有设置了关键字段),不知是否是这样?但我列出首页1000条记录(关键字段ID:1-1000)并未有任何更动。
3、我用Lumigent Log Explorer for SQL Server v4.0.2花了1个多小时查询log,发现并未有update table set BussStatus=1的记录,所以现在我依然很不放心,在这种情况下到底会不会更新到数据库里的其它数据?

请大师们给予指点指点,释放我的疑惑!!!感激不尽!!!
...全文
1207 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
suiyuejinghao1 2012-10-16
  • 打赏
  • 举报
回复
请问如果中途没有中断,已经执行了要怎么恢复数据呢?
wgzaaa 2008-07-01
  • 打赏
  • 举报
回复
回滚
nzperfect 2008-07-01
  • 打赏
  • 举报
回复
5楼就是告诉你为什么不加begin transaction也可以 ~
woodsonv 2008-07-01
  • 打赏
  • 举报
回复
我当时只是写了行update table set BussStatus=1并未加begin transaction,但愿如各位所讲根本没有更新到,从各方面看好像也确实并未做过更新!那样的话就好了,否则麻烦大了!呵呵
ChinaITOldMan 2008-07-01
  • 打赏
  • 举报
回复
该不会更新的
mengmou 2008-07-01
  • 打赏
  • 举报
回复
每一个update,insert语句是一个自动提交的事务,sql server会保证该事务的原子性
arrow_gx 2008-07-01
  • 打赏
  • 举报
回复
microsoft很强大 肯定回滚
nzperfect 2008-07-01
  • 打赏
  • 举报
回复
更新时这样:
select count(*) from tb where ..
然后
begin tran
update tb set col='xx' where ..

肉眼看影响行数,如果和select的相同,就commit tran,否则,可以rollback tran
懒牛科技 2008-07-01
  • 打赏
  • 举报
回复
update 语句放在事务内!
nzperfect 2008-07-01
  • 打赏
  • 举报
回复
肯定回滚

22,300

社区成员

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

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