sqlserver中的事务日志

sqlserver中的事务日志,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,对于哪些语句DDL或DML,维护事务日志以及原因?事务日志用于记录已发生的每个事务的信息。您可以使用它回滚事务,或者在数据库恢复操作的情况下,您可以从备份中恢复,并使用最近的事务日志文件前滚,以重新应用对数据库所做的任何更改 下面是一个更详细地介绍它的示例。事务日志用于记录已发生的每个事务的信息。您可以使用它回滚事务,或者在数据库恢复操作的情况下,您可以从备份中恢复,并使用最近的事务日志文件前滚,以重新应用对数据库所做的任何更改 下面是一个更详细地介绍它的示例。它是为所有DML和DDL操作维护的

对于哪些语句DDL或DML,维护事务日志以及原因?

事务日志用于记录已发生的每个事务的信息。您可以使用它回滚事务,或者在数据库恢复操作的情况下,您可以从备份中恢复,并使用最近的事务日志文件前滚,以重新应用对数据库所做的任何更改


下面是一个更详细地介绍它的示例。

事务日志用于记录已发生的每个事务的信息。您可以使用它回滚事务,或者在数据库恢复操作的情况下,您可以从备份中恢复,并使用最近的事务日志文件前滚,以重新应用对数据库所做的任何更改


下面是一个更详细地介绍它的示例。

它是为所有DML和DDL操作维护的,主要目的是确保数据库的ACID属性:


但是,通过事务日志进行审计和恢复也是可能的,但由于其遵循ACID的设计,它为所有DML和DDL操作维护,主要目的是确保数据库的ACID属性:


但是,通过事务日志进行审计和恢复也是可能的,但由于其遵循ACID的设计,它只是为了找到复杂问题的答案。不,它只是为了找到复杂问题的答案。是的,它们也应该在那里,因为它们是语句。那么为什么我们不能回滚truncate语句。@Vaibhav-truncate是一个元操作-它释放该表的数据页,而不是逐行删除它们。如果将其捕获在
事务中
可以回滚,但不能在提交后立即从日志中恢复。正如JNK提到的Truncate是一种特殊情况,这是出于性能原因。是的,它们也应该在其中,因为它们是语句。那么为什么我们不能回滚truncate语句。@Vaibhav-truncate是一个元操作-它释放该表的数据页,而不是逐行删除它们。如果将它捕获到
事务中
可以回滚,但不能在提交后从日志中恢复。正如JNK提到的Truncate是一种特殊情况,这是出于性能原因。