Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 SQL删除了存储在日志文件中的数据或从数据库中永久删除的数据_Sql Server 2005_Vba - Fatal编程技术网

Sql server 2005 SQL删除了存储在日志文件中的数据或从数据库中永久删除的数据

Sql server 2005 SQL删除了存储在日志文件中的数据或从数据库中永久删除的数据,sql-server-2005,vba,Sql Server 2005,Vba,从SQL数据库中删除数据后,会删除存储在日志文件中的数据,还是会将其从数据库中永久删除 从数据库日志文件中删除数据时会增加大小,为什么 缩小数据库后,它将减小文件大小 编辑1:: 在第五行中,您描述了为什么日志文件会增加,但在完成delete命令后,为什么没有释放磁盘空间,记录会保持日志文件中的状态。是否可以在不存储到日志文件的情况下删除数据?因为我从文件中删除了大约200万个数据,它将增加磁盘的16GB空间因此,正如您所描述的日志行为—收缩后会减小大小—您使用数据库的简单恢复模型 并且日志文件

从SQL数据库中删除数据后,会删除存储在日志文件中的数据,还是会将其从数据库中永久删除

从数据库日志文件中删除数据时会增加大小,为什么

缩小数据库后,它将减小文件大小

编辑1::


在第五行中,您描述了为什么日志文件会增加,但在完成delete命令后,为什么没有释放磁盘空间,记录会保持日志文件中的状态。是否可以在不存储到日志文件的情况下删除数据?因为我从文件中删除了大约200万个数据,它将增加磁盘的16GB空间

因此,正如您所描述的日志行为—收缩后会减小大小—您使用数据库的简单恢复模型

并且日志文件中没有任何已删除数据的副本

如果你问-如何恢复数据-没有任何常规方法

如果您要求数据安全,并且担心数据库中某个地方的已删除数据-是的,有-请参阅。显然,第三方工具可以从DB文件类型(数据和日志)恢复一些数据

db日志的大小会增加,因为它保存正在删除的所有数据,直到
DELETE
命令完成,因为如果失败,sql server应该恢复所有部分删除的数据,因为原子性保证

其他答案:

  • 不,如果不将数据存储到日志文件中,则无法删除数据
  • 由于日志文件已在中长大,所以不会自动收缩。要减小数据库中的文件大小,您应该执行一些,这在生产环境中是强烈不建议执行的
  • 尝试在较小的块中删除,请参见示例
不要像这样删除所有数据:

DELETE FROM YourTable
分小块删除:

WHILE 1 = 1
BEGIN
  DELETE TOP (10000) FROM YourTable
  IF @@ROWCOUNT = 0 BREAK
END

从数据库表中删除数据时,会增加tempdb和templog的大小,为什么?