SQL SERVER 批量刪除資料庫表

2021-06-18 04:10:36 字數 1763 閱讀 8817

今天在做批量匯入大量表到資料庫去,有250個,但是前期需要做些測試工作,所以會需要進行表的刪除,但是呢,表太多了,不可能乙個乙個的刪除。所以在網上找了些批量刪除表的sql語句。當然這種刪除需要表的名字有相同的字首。網上的語句比較多,但是我試驗成功的只有幾個,其中的經驗和大家分享下:

sql**1:

declare @table nvarchar(30)   

declare tmpcur cursor for

select name from sys.objects where type='u' and name like n'hsupa%'

open tmpcur

fetch next from tmpcur into @table

while @@fetch_status = 0

begin

declare @sql varchar(100)

select @sql = 'drop table ' + @table

exec(@sql)

fetch next from tmpcur into @table

end

close tmpcur

deallocate tmpcur

表的名字中最好不要用空格,否則會報錯。

既然是測試,就取類似test1.這類的名字會比較好。

這個也可以:

sql**2:

/*--------------------------------   

功能說明: 批量droptable

使用說明: 使用時一定要小心,因為刪選表的where條件是like所有必須保證where

後的like確定與你要刪除表名相匹配

---------------------------------*/

--------引數定義-------------------

declare @tablename as nvarchar(50) --查詢表名條件(小心!,確保like條件是你要drop的表.tablename盡量精確)

set @tablename='test'

--------------------------------------

--select name from sys.tables where name like '%'+@tablename+'%' --查詢出要刪除表的名稱

if @tablename='' set @tablename='tablename'--初始化tablename為tablename,防止@tablename為空

declare @tablenames as nvarchar(3000)

declare @sql as nvarchar(3000)

set @tablenames=

(select ','+name from sys.tables where name like '%'+@tablename+'%' for xml path(''))

set @tablenames= stuff(@tablenames,1,1,'')

set @sql='drop table '+@tablenames

exec(@sql)

注:**it_eye:

再次謝謝前輩的文章,今天又學到了東西~~

redis批量刪除資料

redis本身未提供批量刪除的功能,但我們可以使用下面的技巧批量刪除全部或指定格式的資料。刪除以test開頭的所有key值 redis cli h p 埠 a 密碼 keys test xargs redis cli h p 埠 a 密碼 del 如果是刪除localhost的redis資料,且未設...

PHP批量寫入資料 批量刪除資料

批量插入可以參考 sql insert into data id,ip,data values for i 0 i 100 i sql join sqls connect mysql query sql 批量刪除多條記錄,對於比較多的資訊,如果沒有批量刪除功能是非常麻煩的。可以加全選核取方塊 連線資...

MySQL批量刪除資料指令碼

usr bin python coding utf 8 import os import mysqldb import time db mysqldb.connect host 172.16.32.11 user a passwd root1123 port 3307,charset utf8 cu...