在SQL Server 2012上使用drop和truncate等DDL命令时,是否能够回滚更改?理论上,我一直读到您可以回滚DML命令,但不能回滚DDL,因为它们不会被记录。我的问题是,DDL命令是否也可以回滚?或者我的SSMS中的一些特殊功能或设置发生了变化,导致了它的出现。
其他SQL平台,如Oracle和Postgres呢?我们还可以在它们上回滚DDL命令
在使用ADO.NET SqlClient类时,有几种方法可以回滚事务。通过显式调用SqlTransaction.Rollback,或具有命令超时,或事务范围内的事务超时等。但是,在使用SQL Server (2012或更高版本)时,如何检测此回滚何时完成?对于长时间运行的事务,回滚可能需要很长时间,而且通常会占用大量的数据库IO,因此立即重试该事务可能不是明智之举。在我们的情况下,我们希望等待回滚完成。
(在我们的特定情况下,