在事務中可以使用SQL「truncate table」命令嗎?我正在創建一個應用程序,而我的表格有很多記錄。我想刪除所有記錄,但如果應用程序失敗,我將回滾事務。刪除每條記錄需要很長時間。我想知道如果我使用truncate table,我仍然可以回滾事務並在發生故障時恢復數據。我意識到截斷表不會將每個刪除寫入事務日誌,但我想知道是否將頁面釋放寫入日誌以便回滾工作。在事務中截斷表
Q
在事務中截斷表
45
A
回答
44
在SQL Server中,您可以從事務回滾TRUNCATE。正如你所提到的那樣,它會將頁面重新分配寫入日誌。
+0
謝謝一噸先生。 – 2009-10-06 16:59:52
15
在Oracle中,TRUNCATE TABLE是一個不能在事務中使用的DDL語句(或者更準確地說,不能被回滾)。 AFAIK,如果在執行語句時有一個正在進行的事務,則事務被提交,然後TRUNCATE被執行並且不能撤消。
在Informix中,TRUNCATE的行爲稍有不同;您可以在事務中使用TRUNCATE,但在此之後允許的唯一語句是COMMIT和ROLLBACK。
其他DBMS可能對TRUNCATE TABLE的行爲有自己特殊的解釋。
相關問題
- 1. 在事務中截斷Oracle臨時表,截斷* ALL *臨時表
- 2. MySQL:在事務中截斷表?
- 3. Spring/Hibernate截斷/刪除表中的所有行 - 事務問題
- 4. SQL Server事務日誌截斷/收縮
- 5. 截斷,然後在一個事務中插入MySQL
- 6. 如何在截斷的mysqldb中執行一個事務
- 7. NHibernate清除/截斷表和重新填充單個事務
- 8. MySQL表格 - 截斷還是不截斷?
- 9. Azure截斷表
- 10. 截斷表sqlkorma
- 11. BeautifulSoup截斷表
- 12. 截斷表?
- 13. 通過web服務截斷表
- 14. Realm Swift中的截斷表
- 15. sql中斷事務
- 16. SQL服務器備份不截斷事務日誌
- 17. 截斷表權限
- 18. 表截斷與AbcPdf
- 19. 不能截斷表
- 20. 截斷SAS LASR表
- 21. 無法在Cassandra 2.0.2中截斷表格
- 22. 在sqlplus中執行立即截斷表
- 23. 在Laravel 5中截斷一個表格
- 24. 如何在軌中截斷連接表?
- 25. 在iPhone上的SQLite3中截斷表?
- 26. 在視圖中截斷底層表
- 27. 如何在C#中截斷列表?
- 28. HBase:通過Java API截斷表使表被截斷
- 29. 截斷在Java
- 30. 截斷在C#
我應該澄清說我正在使用MSSQL 2005服務器。 – 2009-10-06 16:56:50