一次刪除所有的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)
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的作法一樣。
上述提供的程式與操作,僅供大家參考
沒有留言:
張貼留言