MS SQL 如何Rollback

andylyc 2008-01-21 02:06:07
执行 update的时候忘记加条件了,可以rollback吗,十万火急急!!! 还望各位大侠们出手相救啊!
...全文
3149 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
rickey_update 2011-09-22
  • 打赏
  • 举报
回复
那个好心人有Log Explorer吗,发一份到284431063@qq.com
ojuju10 2008-01-21
  • 打赏
  • 举报
回复
只有定义了begin tran
才可以rollback tran

系统默认每次运行的Sql脚本就是一个事务,它已经提交了,不能再回滚了!
yangjiexi 2008-01-21
  • 打赏
  • 举报
回复
所以更新数据库数据时一定要小心,
数据库大时通常修改某个表需要先备份此表!
不大就先备份数据库再修改!
r_swordsman 2008-01-21
  • 打赏
  • 举报
回复
超简单.......重启服务器就可以了....
andylyc 2008-01-21
  • 打赏
  • 举报
回复
彻底没辙了,数据库没备份,log也没有,真不知道数据库是怎么管理的,唉...
dawugui 2008-01-21
  • 打赏
  • 举报
回复
看来是只能使用log explorer了.

用日志工具Log Explorer
步骤:
1、查看日志
a、打开log explorer,选择菜单File-->attach log file
b、在Log File Selection窗口中,填写连接到要恢复数据的数据库服务器机器名、数据库登录ID及密码,然后点击"Connect"按钮。
c、若连接成功,则窗口左边树将显示命令菜单,这时我们点击Browser下的View Log命令,此时窗口右边则出现该数据库的Log。
2、恢复数据库
这时您只要选择您要恢复对事件点,右键点击选择"undo transation"命令,保存T-SQL代码,然后在查询分析器中执行该T-SQL代码
晓风残月0110 2008-01-21
  • 打赏
  • 举报
回复
使用Log Explorer恢复数据

用日志工具Log Explorer
步骤:
1、查看日志
a、打开log explorer,选择菜单File-->attach log file
b、在Log File Selection窗口中,填写连接到要恢复数据的数据库服务器机器名、数据库登录ID及密码,然后点击"Connect"按钮。
c、若连接成功,则窗口左边树将显示命令菜单,这时我们点击Browser下的View Log命令,此时窗口右边则出现该数据库的Log。
2、恢复数据库
这时您只要选择您要恢复对事件点,右键点击选择"undo transation"命令,保存T-SQL代码,然后在查询分析器中执行该T-SQL代码
注:删除后作了数据库备份 备份会截断日志
kk19840210 2008-01-21
  • 打赏
  • 举报
回复
如果你的数据恢复模型是完整的话 试着用日志还原的时间点


--创建测试数据库
CREATE DATABASE Db
GO

--对数据库进行备份
BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT
GO

--创建测试表
CREATE TABLE Db.dbo.TB_test(ID int)

--延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)
WAITFOR DELAY '00:00:01'
GO

--假设我们现在误操作删除了 Db.dbo.TB_test 这个表
DROP TABLE Db.dbo.TB_test

--保存删除表的时间
SELECT dt=GETDATE() INTO #
GO

--在删除操作后,发现不应该删除表 Db.dbo.TB_test

--下面演示了如何恢复这个误删除的表 Db.dbo.TB_test

--首先,备份事务日志(使用事务日志才能还原到指定的时间点)
BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT
GO

--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)
RESTORE DATABASE Db FROM DISK='c:\db.bak' WITH REPLACE,NORECOVERY
GO

--将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早
DECLARE @dt datetime
SELECT @dt=DATEADD(ms,-20,dt) FROM # --获取比表被删除的时间略早的时间
RESTORE LOG Db FROM DISK='c:\db_log.bak' WITH RECOVERY,STOPAT=@dt
GO

--查询一下,看表是否恢复
SELECT * FROM Db.dbo.TB_test

/*--结果:
ID
-----------

(所影响的行数为 0 行)
--*/

--测试成功
GO

--最后删除我们做的测试环境
DROP DATABASE Db
DROP TABLE #
威尔亨特 2008-01-21
  • 打赏
  • 举报
回复
用日志恢复
free1879 2008-01-21
  • 打赏
  • 举报
回复
不可以回滚!
看看你的条件是什么?update回原来的数据,再update加条件!
yangjiexi 2008-01-21
  • 打赏
  • 举报
回复
不行,用备份的数据库去找出修改的数据,
或用工具Log Explorer
OracleRoob 2008-01-21
  • 打赏
  • 举报
回复
用Log Explorer试试
昵称被占用了 2008-01-21
  • 打赏
  • 举报
回复
已经提交,不可以回滚

下载个SQL Explorer ,用日志恢复
【课程简介】Secureboot从入门到精通,全网最全最详细最系统讲解secureboot核心知识点。业务安全的基石是APP安全,APP安全的基石是操作系统安全,操作系统安全的基石是SecureBoot安全。不理解SecureBoot安全无法深入理解业务的安全性,也无法进行良好的安全业务设计。 SecureBOOT安全涉及方方面面的知识,掌握Secureboot后,对整个大系统就有了一个宏观的概念,对整个大系统的其它模块学习都有帮助。Secureboot也是一个高门槛的知识点,涉及到密码学基础知识、ARM硬件基础知识、SOC硬件基础知识(如SOC内集成的efuse、crypto engine、RPMB等)、BootRom的实现、emmc/ufs/nand/nor等知识、各种规范和标准、ATF(TF-A)等软件、安全业务的设计模式…所以当我们充分理解了Secureboot,再回头学习其它知识点是,就会变得比较容易.本课程200多页的PPT,手把手教大家Secureboot的理解和各种安全基础知识。【课程收益】掌握当前主流的多样化的硬件架构示例、软件架构示例、启动示例、刷机示例。从根本掌握Secureboot的核心原理,包括但不限于密码学基础知识、Trustzone架构原理、efuse、RPMB、anti-rollback、crypto engine彻底学会SOC大系统启动流程、刷机流程,熟练掌握ATF核心代码,熟悉相关规范手册。学习六种主流的安全启动经典案例,全面掌握Secureboot的设计模型,能否分析其优缺点,能够独立设计其方案【学习对象】1、大学学生、研究生,科研人员;2、嵌入式开发者、底层开发者、芯片开发者3、汽车电子、手机、服务器等。【课程优势】全网唯一全网最全全网最系统 【课程大纲】 【其它课程】

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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