2011-02-07 62 views
69

如何在一個命令中從一個數據庫中刪除多個表格。 類似,在mysql中一次刪除多個表格

> use test; 
> drop table a,b,c; 

其中a,b,c是從數據庫測試的表。

+11

你已經根據下面的答案,HeidiSQL您可以通過他們的名字(上文本框)來過濾表回答自己 – ajreal 2011-02-07 14:32:56

+0

,寫`DROP TABLE`到一個查詢,然後雙擊每個需要的表以它的名字追加到查詢(在它們之間輸入逗號)然後按F9執行。有點偏離主題,但我來這裏。 – 2017-02-21 12:45:10

回答

87

例子:

假設表A中有兩個孩子,B和C.然後,我們可以使用下面的語法來刪除所有表。

DROP TABLE IF EXISTS B,C,A; 

這可以放在腳本的開頭,而不是單獨放置每個表。

+20

也許值得指出的是,表格根本不需要任何關係。它們可以完全獨立,這個語法仍然可以工作。 – crmpicco 2014-02-19 10:11:20

56
SET foreign_key_checks = 0; 
DROP TABLE IF EXISTS a,b,c; 
SET foreign_key_checks = 1; 

那麼你不必擔心按正確順序放置它們,也不必擔心它們是否實際存在。

-2
declare @sql1 nvarchar(max) 
SELECT @sql1 = 
    STUFF(
     (
      select ' drop table dbo.[' + name + ']' 

      FROM sys.sysobjects AS sobjects 
      WHERE (xtype = 'U') AND (name LIKE 'GROUP_BASE_NEW_WORK_%') 
      for xml path('') 
     ), 
    1, 1, '') 

    execute sp_executesql @sql1