今天在做批量匯入大量表到資料庫去,有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...