Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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 嵌套事务-延迟持久性_Sql Server_Tsql_Transactions - Fatal编程技术网

Sql server 嵌套事务-延迟持久性

Sql server 嵌套事务-延迟持久性,sql-server,tsql,transactions,Sql Server,Tsql,Transactions,我对嵌套事务的理解是,所有事务将只在最外层提交时提交-这是否意味着如果我在内部提交时有延迟持久性=on的内部提交,DD将无法工作 例如: Begin Transaction ---code-- Begin Transaction -- code -- Commit With (Delayed_DUrability = On) Commit 延迟耐久性=ON与嵌套事务无关。 它仅用于指示SQL Server关闭事务的WAL保护。 延迟

我对嵌套事务的理解是,所有事务将只在最外层提交时提交-这是否意味着如果我在内部提交时有延迟持久性=on的内部提交,DD将无法工作

例如:

   Begin Transaction
      ---code--
      Begin Transaction
       -- code --
      Commit With (Delayed_DUrability = On)
   Commit

延迟耐久性=ON与嵌套事务无关。 它仅用于指示SQL Server关闭事务的WAL保护。 延迟持久性首先要启用,并允许在数据库级别产生任何影响

因此,事务持续时间可以更快,因为当数据首次写入事务日志时,SQL Server不应该等待。但代价是,如果数据库崩溃,数据可能会损坏

除此之外,SQL Server不支持自治事务,因此嵌套事务是一种语法:


无论延迟的持久性如何,事务都是全部或非全部。所有工作都在最外层的事务中完成,并通过单个事务提交或回滚。