如何在SQL server 里删除全部表名类似"abcd"的所有表呢?

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:41:09
我没有表达清楚,是这个意思,表名的开始几个字符是abcd,表名可能是abcd154798,abcd6325,abcd8974,....我想要把以abcd开始的所有表都删除,谢谢

把test换成你的数据库名
放到查询分析器里执行一下就ok了
use test
declare mycur cursor local for select [name] from dbo.sysobjects where xtype='U' and left([name],4)='abcd'
declare @name varchar(100)

OPEN mycur

FETCH NEXT from mycur into @name

WHILE @@FETCH_STATUS = 0

BEGIN
exec('drop table ' + @name)
FETCH NEXT from mycur into @name
END

CLOSE mycur

use your_db_name
go
--在系统表中搜索表明为abcd的表,如果找则删除
if exists(select * from sysobjects where name = 'abcd' )
drop table abcd
go

declare @SqlStr varchar(8000)
select @SqlStr=''
select @SqlStr=@SqlStr+'DROP TABLE ['+[name]+']'+CHAR(10)
from sysobjects where Xtype=N'U' and left([name],4)='abcd'
exec(@SqlStr)