-
SQL Server 添加Delete操作回滚日志方式
这篇文章主要介绍了SQL Server 添加Delete操作回滚日志方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
我们在操作表的时候难免会遇到误删除,或者删掉的数据还想恢复的情况。
也许细心的朋友会用begin tran rollback/commit 这种事务来避免出现失误,但这并不是最保险的。
如果提交了事物发现删错了或者忘记提交从而导致表被锁,这些问题总是不可避免的。
废话不多说了,下面直接进入正题,通过触发器记录删除日志,避免误删除带来的尴尬。
下面这段sql粘过去直接运行,建立一个存储过程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
|
接着我们新建一张测试表,并且随便往表中插入两组数据:
1 2 3 4 5 6 7 8 9 10 |
|
下面执行这个SP,在给test表添加回滚日志:
1 |
|
细心的你不难发现,这时候数据库里面应该会多出两张表:
然后我们删掉一条数据:
1 |
|
再查看那两张表:
没错,这时候日志表里有数据了,然后我们把 UPDATE_LOG 表中的 RollBackSQ L这一列对应的值copy出来执行一下:
1 |
|
别copy我上面这段sql,因为GUID肯定是不一样的!
然而,数据恢复了:
最后,delete日志的介绍就结束了,唯一的不满足的是只能作用在Delete 操作,其实UPDATE 操作也同样需要这样的回滚日志。
原文链接:https://blog.csdn.net/Wikey_Zhang/article/details/73648156