为了账号安全,请及时绑定邮箱和手机立即绑定

如下,具体情况,请问SQL该怎样操作才能不写日子?

如下,具体情况,请问SQL该怎样操作才能不写日子?

猛跑小猪 2022-06-30 07:07:57
问题是这样的,如果用delete from直接删除某个数据库表中的符合某个条件的数据的时候,SQL会将删除的每条记录的操作都写入日志文件,这样的话,就可以通过SQL以及恢复软件可以将删除的数据恢复到SQL数据库中;而用truncate table删除数据库表数据的时候,虽然不写入日志,不能恢复数据,却只能删除整个表的数据,而不能设定条件,这样就不能删除某部分数据了。我的问题是这样的:有不有办法,能像truncate table那样删除数据的时候不写日志,或者说就是删除数据后不能恢复,但是又能像delete from那样能自己设定where条件,删除符合某个条件的部分数据。希望知道方法的朋友,给我一个好的方法,急需解决这个问题。如果先备份好LOG,再用delete from删除,然后再还原LOG,但是我还原LOG时提示错误:先前的还原操作未指定with norecovery或with standby。请在除最后步骤之外的所有其他步骤中指定with norecovery或with standby后,重新启动该还原序列。restore log 操作异常终止。
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

删除前备份好log
在用delete from删除
在还原LOG

查看完整回答
反对 回复 2022-07-05
?
莫回无

TA贡献1865条经验 获得超7个赞

目前还没有强制delete不记录日志的方法,因为在设计的时候SQL Server为了保障数据的安全性,引擎在设计上就会对Delete操作进行日志记录。为了减少日志的记录,可以如下操作
Select * into Table2 From Table1 Where 条件表达式
Truncate table Table1
sp_rename 'Table2', 'Table1'

查看完整回答
反对 回复 2022-07-05
  • 2 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信