SQL的DELETE语句是否真的删除了数据?

Ale*_*ini 4 sql sql-server security

故事:今天我们的一位客户问我们他在程序中删除的所有数据是否都无法恢复.

除了计划备份之外,我们每天缩小一次日志文件,并且我们使用该DELETE命令在需要时删除表中的记录.

虽然,只是为了它,我用编辑器(使用PSPad)打开.mdf文件,并搜索一个特定的独特数据 - 我确信 - 在一个表中.

问题:我在文件中跟踪它,然后执行DELETE命令,它仍然存在.

问题:是否有特定的命令我们不知道从磁盘中物理删除记录?

注意:我们知道有一些特殊的技术可以从硬盘驱动器中恢复丢失的数据,但在这里我说的是一个记事本 - 想要的!

gbn*_*gbn 6

文本可能仍然存在,但SQL Server没有任何结构或可用数据的概念.

"释放的空间"被简单地解除分配:不被删除,压缩或归零.

" 即时文件初始化 "功能也依赖于此(不会将整个MDF文件归零),并且以前的磁盘数据仍可用于全新数据库的eben:

由于删除的磁盘内容仅在新数据写入文件时被覆盖,因此未经授权的主体可能会访问已删除的内容.

编辑:回收空间:

ALTER INDEX ...与REBUILD是最好的方式

使用NOTRUNCATE的DBCC SHRINKFILE可以将页面压缩到由释放的页面引起的间隙中,但不会页面中回收已删除行的空间