我在update的时候没加where条件,把表中所有数据都改了表的那个字段是密文存的,可以通过日志文件恢复吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在update的时候没加where条件,把表中所有数据都改了表的那个字段是密文存的,可以通过日志文件恢复吗?相关的知识,希望对你有一定的参考价值。

数据库是MS-SQL 2005

参考技术A 可以。利用数据库还原功能恢复到你更新之前的数据库时间。追问

要咋搞?

追答

数据库选择。备份里面有关于时间还原的选择。还原到几点的数据选择。你试验一下就能找到

追问

关健是没有备份呀,哥哥。。。

追答

不需要备份。就在还原的菜单选择里面有啊

参考技术B 在数据库里执行 ‘rollback;’ 回滚操作,就是撤销之前的操作。前提是你没有进行commit(提交)操作; 参考技术C rollback不行吗?追问

告诉我方法,我有日志文件的。就是没有备份。

追答

rollback命令查百度没有吗?

SQL中 为啥要避免在where后使用'1=1'这种表达式作为部分条件

并非一定要避免,而是数据量很多的情况下,这种条件会导致sql执行的时候忽略掉索引的优势,导致查询效率很低。所以,只在数据量很大的时候才是需要尽量避免使用。
数据量少的时候,用这个还是很方便的。

参考资料:http://blog.csdn.net/farawayhome/article/details/6621114

参考技术A 因为1=1不管在任何条件下都是成立的,等于没加条件,所以如果在update时用这个作为条件,容易犯下把全部的数据都改了的错误操作 参考技术B 是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取想得到的资料。
and user>0,这时,服务器运行Select * from 表名 where 字段=444 and user>0这样的查询,当然,这个语句是运行不下去的,肯定出错,本回答被提问者采纳
参考技术C 比如你要筛选数据,筛选的数据有好几个,这个时候你就要用where条件了。在我看来加上1=1是为了在代码中避免出错,如果加and符号,where 1=1 and XXX 这样子就不会出错,如果加的查询条件是and 并且前边只有where的时候就会出错。
多用于前台筛选,加筛选条件。

以上是关于我在update的时候没加where条件,把表中所有数据都改了表的那个字段是密文存的,可以通过日志文件恢复吗?的主要内容,如果未能解决你的问题,请参考以下文章

数据库操作语言

MySQL ------ 更新数据(UPDATE)(二十一)

MySQL ------ 更新数据(UPDATE)(二十一)

16-3 update语句

Thinkphp6中where条件中字段与字段比较条件的写法

SQL中使用UPDATE更新数据时一定要记得WHERE子句