任何人都可以提供我在SQL服務器截斷和刪除之間的所有區別的列表?sql server中truncate和delete之間有什麼區別?
回答
你應該在問之前谷歌它。
截斷
- 截斷刪除 從數據庫中的所有引用。
- 快速
- 事務日誌中沒有條目。
- 如果移除一次,則無法恢復。
- 頁面參考被清除。
- 全或無
- 標識列被重新初始化 種子
- 截斷是DDL
截斷數據表tblname
沒有contidion可以給
刪除
- 條目在事務日誌中創建。
- 可恢復
- 慢
- 基於每個記錄刪除
- 的參考文獻mainained頁面
- 身份從之前的 位置開始
- DML
Delete FROM tableName
沒有任何結構表的兩個影響。所有引用必須在執行任何操作之前被刪除,但它並不適用與Cascade
=真正用於刪除
對。截斷是DDL,刪除是DML。 – Konerak 2010-05-04 06:47:38
表結構呢? – 2010-05-04 06:49:02
不要猶豫,即時通訊新的SQL服務器,甚至學習者。 – 2010-05-04 06:49:26
時截斷之間的區別和delete刪除列示如下:
+----------------------------------------+----------------------------------------------+
| Truncate | Delete |
+----------------------------------------+----------------------------------------------+
| We can't Rollback after performing | We can Rollback after delete. |
| Truncate. | |
| | |
| Example: | Example: |
| BEGIN TRAN | BEGIN TRAN |
| TRUNCATE TABLE tranTest | DELETE FROM tranTest |
| SELECT * FROM tranTest | SELECT * FROM tranTest |
| ROLLBACK | ROLLBACK |
| SELECT * FROM tranTest | SELECT * FROM tranTest |
+----------------------------------------+----------------------------------------------+
| Truncate reset identity of table. | Truncate reset identity of table. |
+----------------------------------------+----------------------------------------------+
| It locks the entire table. | It locks the table row. |
+----------------------------------------+----------------------------------------------+
| Its DDL(Data Definition Language) | Its DML(Data Manipulation Language) |
| command. | command. |
+----------------------------------------+----------------------------------------------+
| We can't use WHERE clause with it. | We can use WHERE to filter data to delete. |
+----------------------------------------+----------------------------------------------+
| Trigger is not fired while truncate. | Trigger is fired. |
+----------------------------------------+----------------------------------------------+
| Syntax : | Syntax : |
| 1) TRUNCATE TABLE table_name | 1) DELETE FROM table_name |
| | 2) DELETE FROM table_name WHERE |
| | example_column_id IN (1,2,3) |
+----------------------------------------+----------------------------------------------+
在處理數據庫時,我們使用Delete和Truncate而不知道它們之間的差異以及何時使用它們。在本文中,我們將討論Sql中的Delete和Truncate之間的區別。
刪除 刪除是一個DML命令。 使用行鎖執行刪除語句,表中的每一行都被鎖定以供刪除。 我們可以在where子句中指定過濾器。 如果條件存在,它將刪除指定的數據。 刪除活動觸發器,因爲操作是單獨記錄的。 比截斷慢,因爲它會保留日誌 截斷 截斷是DDL命令。 截斷表總是鎖定表和頁面,但不是每一行。它刪除所有數據。 不能使用Where條件。 它刪除所有數據。 截斷表無法激活觸發器,因爲該操作不會記錄單個行刪除。 性能更快,因爲它不保留任何日誌。 注意 與事務一起使用時,Delete和Truncate都可以回滾。 如果事務完成,意味着提交,那麼我們不能從日誌文件中回滾截斷命令,但是我們仍然可以從日誌文件中回滾刪除命令,因爲刪除寫入將它們記錄在日誌文件中,以防將來從日誌文件中回滾。
如果您有一個引用您要截斷的表的外鍵約束,即使引用表中沒有數據,這也不起作用。這是因爲外鍵檢查是使用DDL而不是DML完成的。這可以通過暫時禁用表中的外鍵約束來解決。
刪除表是一個記錄操作。所以刪除每行記錄在事務日誌中,這使得它變慢。 截斷表還會刪除表中的所有行,但不會記錄每行的刪除,而是記錄表的數據頁的取消分配,這會使其更快。
〜如果不小心使用Delete/Truncate刪除表中的所有數據。您可以回滾提交的事務。恢復上次備份並運行事務日誌,直到發生Delete/Truncate時。
本文取回滾表截斷命令後,在SQL或
- 1. SQL Server中的drop table和delete table有什麼區別?
- 2. SQL Server 2005中tran和transaction之間有什麼區別
- 3. get_new_rowversion()和@@ DBTS之間有什麼區別
- 4. SQL查詢之間有什麼區別?
- 5. SQL Server表:@,#和##有什麼區別?
- 6. SQL Server Compact與SQL Server和SQL Server Standard有什麼區別?
- 7. Oracle和MS SQL Server中NOT條件和NOT()之間有什麼區別
- 8. SparseArray remove()和delete()有什麼區別?
- 9. 在sql server 2005和sql server 2008中,SCHEMA有什麼區別?
- 10. c#中的DateTime和SQL Server中的DateTime之間有什麼區別嗎?
- 11. 「層」和「層」之間有什麼區別?
- 12. Tableau和QlikView之間有什麼區別
- 13. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 14. @Entity和@embeddable之間有什麼區別
- 15. ContentObservable和DataSetObservable之間有什麼區別?
- 16. touchmove和gesturechange之間有什麼區別?
- 17. :notification.flags和notification.defaults之間有什麼區別?
- 18. proc和lambda之間有什麼區別?
- 19. :: after和after之間有什麼區別?
- 20. read()和io.read()之間有什麼區別?
- 21. Request()和Request.Form()之間有什麼區別?
- 22. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 23. getA()和this.getA()之間有什麼區別?
- 24. (int)和intval()之間有什麼區別?
- 25. set_value和= pandas之間有什麼區別
- 26. * zoom和zoom之間有什麼區別?
- 27. {0}和「」之間有什麼區別?
- 28. typedef和using之間有什麼區別?
- 29. 「」和「'之間有什麼區別?
- 30. STDIN和tty之間有什麼區別?
http://www.mssqltips.com/tip.asp?tip=1080 – PeterMmm 2010-05-04 06:45:12
非常感謝很多我找到答案。 – 2010-05-04 06:47:59