2009-07-17 99 views
14

在SQL Server中,就是一個數據庫對象(表/視圖)以下兩SQL Server中的drop table和delete table有什麼區別?

  • 右鍵之間,齊齊DROP TABLE(即腳本表的差額爲 - >降至 - >新查詢編輯器窗口)

  • 右鍵單擊數據庫對象(表/視圖)並選擇刪除。

我試過它們兩個都執行相同的操作。對於同一事物有兩個選擇的任何理由?刪除選項只是刪除數據庫對象的粗糙方法嗎?

只是爲了記錄 - 我使用SS2008。

+1

對不起 - 只發現一個區別。在刪除對象GUI中,頂部有一個'腳本'選項,它提供了簡單的drop table語句的t-sql語句。當你使用drop table選項時,只有在sys.objects表中存在該表時,生成的t-sql纔會執行drop。抱歉再次提出這個問題。請繼續並關閉它。 – Arnkrishn 2009-07-17 15:24:06

回答

1

在刪除對象GUI中,頂部有一個'script'選項,它提供了t-sql語句,它是普通的drop table語句。當你使用drop table選項時,只有在sys.objects表中存在該表時,生成的t-sql纔會執行drop。

2

其中一個執行刪除,另一個爲您提供TSQL腳本來執行刪除,以便您可以在其他地方修改或使用它。

+0

是的,你是對的:)我沒有以這種方式看待這個問題 - 我的回答更注重結果,你已經注意到生成DROP語句允許進行一些手動更改,或者複製到腳本,例如...我爲你的答案投票,歡呼:) – 2009-07-17 15:19:14

1

這兩個是相同的操作。 DROP TABLE是SQL語句,Delete是標準的,用戶友好的,菜單驅動的命令名稱。就這樣。

14

下降刪除對象,至少在SQL Server 2005都執行相同的操作。

Delete tableDrop table雖然不一樣。前者將從表格中刪除所有數據,而後者將從數據庫中刪除表格。

0

如果您選擇刪除,然後選擇編寫腳本,您將會看到它也爲您提供了drop table語句。

1

刪除表格,它將從數據庫中刪除完整的表格。不能檢索bak 刪除用於從表格中刪除數據..可以使用ROLL BACK檢索數據。

26

DROP也會刪除所有數據和表結構。

DELETE將刪除數據,但表結構將保持不變,我們仍然可以回滾數據。同樣使用DELETE,您可以使用where條件,即只刪除某些記錄。

-1

我們可以使用delete命令從表中刪除特定的記錄。但使用拖放我們可以刪除表格。如果你使用Drop,結構也會去,但是如果你使用delete命令,結構將不會去。

4

刪除v/s刪除。

  • 刪除語句執行基於條件的刪除,而刪除命令刪除表中的整個記錄​​。

  • 刪除語句只刪除表中的行,並將表結構保留爲相同,而刪除命令刪除表和表結構中的所有數據。

  • 刪除操作可以被回滾並且不會自動提交,而Drop操作不能以任何方式回滾,因爲它是自動提交語句。

0

使用刪除命令行可以有條件地從表中刪除,但可以通過使用COMMIT和ROLLBACK完成/撤銷更改。表結構永遠不會丟失。截斷是Delete的一種替代方式,它允許刪除行而不會丟失表結構,但UNLIKE刪除操作無法撤消。然而,Drop語句會從數據庫中完全刪除表及其結構,並且此操作不能撤消。所以,Delete是一個DML語句,Turncate和Drop是DDL語句。

0

刪除表將刪除表和表自身的內容。 刪除表格只會刪除內容。 截斷將只是'重置'內容爲零

0

另一個主要的區別是,在DELETE中它將遍歷/掃描到所有(基於條件的謂詞)記錄並刪除。但是,它會遍歷記錄,而不是從數據庫中刪除實際的表項。如果我們看一下執行計劃刪除:

enter image description here

在下降的情況下,因爲它是DDL命令它甚至不會遍歷記錄並不會產生任何的執行計劃。

相關問題