sqlserver 批量刪除相同字首名的表

2022-06-12 19:03:08 字數 1654 閱讀 5094

--方法1

declare

@table

nvarchar(30

)declare tmpcur cursor

forselect 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

endclose

tmpcur

deallocate tmpcur

方法2

/*

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

功能說明: 批量droptable

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

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

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

*/--

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

declare

@tablename

asnvarchar(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

asnvarchar(3000

)declare

@sql

asnvarchar(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)

sql server 批量刪除

sql server 批量刪除資料 建立表1 1 create table table1 23 id int primary keyidentity 1,1 4 msg varchar 24 5 loc varchar 24 6 style varchar 24 7 建立表2 1 表2 2creat...

SQL SERVER 批量刪除儲存過程

sqlserver 2005一次只能刪除乙個儲存過程,如果多了,需要很長時間才能刪完,所以寫了一段語句,直接就把當然資料庫下所有使用者自定義的儲存過程給drop了。不過使用都請留心,當前開啟的資料庫哦。下面貼 declare proccur cursor forselect name from sy...

mysql 批量刪除表(表名字首相同)

如果僅僅使用sql語句,mysql 目前是沒有辦法批量刪除表名相似的表!但可以通過sql生成合併刪除語句,形如 drop table tbl 1,tbl 2,tbl 3 這樣複製出來執行就可達到批量刪除的效果。如下為示例 1 使用sql,將資料庫database1中的表名以tab 為字首的表拼接成d...