一次刪除所有的Table

摘要:一次刪除所有的Table

 

最近碰到資料更新的問題,就是要刪除全部Table的舊資料,然後再倒進新的資料。
一般正常的作法,就是一個Table慢慢Truncate或是Drop掉,我找到一個方法,可以一下子就將所有Table刪除了。
方法如下:
Declare @table_name varchar(8000)    
Declare @drop_table varchar(8000)    
Set @table_name =’’
    
select name into #temp_1 from sysobjects where xtype =’U’
  
update #temp_1 set @table_name=@table_name +',' + 'SchemaName.'+ '[' + name +']' from #temp_1
  
set @table_name = substring(@table_name,3,len(@table_name))
  
select substring(@table_name,3,len(@table_name))  
  
set @drop_table =
'drop table '+substring(@table_name,3,len(@table_name))
  
EXEC (@drop_table)
 
以我例子而言,如果我的SchemaName是dbo,我只要將上面的SchemaName換成我的dbo,就可以一下子刪除此資料庫的資料表,Truncate Table的作法一樣。
 

上述提供的程式與操作,僅供大家參考