如何删除所有带关键字的表?

zb1119 2004-08-31 06:51:30
例如数据库中有很多带mms的表。怎么能用语句删除呢?我一条一条删除,累死了。
...全文
240 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
老宛 2004-09-01
  • 打赏
  • 举报
回复
以下的还能捞点分吗?呵呵,来迟了
zb1119 2004-09-01
  • 打赏
  • 举报
回复
谢谢大家,我现在没装数据库,没法试验,晚上先把贴子结了,以上各位一人得一部分吧。
谢谢大家支持
老宛 2004-09-01
  • 打赏
  • 举报
回复
附:
http://blog.csdn.net/leimin/archive/2004/03/08/12901.aspx
看看很好的
老宛 2004-09-01
  • 打赏
  • 举报
回复
我来替楼主选择一个上面的比较好的方法吧,当然我选都是多余
那就是:8楼,邹老大,
exec sp_msforeachtable @command1='drop table ?',@whereand=' and name like ''mms%'''

呵呵
zjcxc 元老 2004-08-31
  • 打赏
  • 举报
回复
--用游标那个写错条件了,改为这样:
exec sp_msforeachtable @command1='drop table ?',@whereand=' and name like ''mms%'''
zjcxc 元老 2004-08-31
  • 打赏
  • 举报
回复
--如果表不多,可以这样
declare @s nvarchar(4000)
set @s=''
select @s=@s+',['+name+']' from sysobjects where xtype='U' and name like 'mms%'
if @@rowcount=0 return
set @s=stuff(@s,1,1,'')
exec('drop table '+@s)



--如果表多,则用游标保险
exec sp_msforeachtable 'if ''?'' like ''[[]''+user_name()+''].[[]#qt%]'' drop table ?'
lalakid 2004-08-31
  • 打赏
  • 举报
回复
**************************
晕倒,我上面的错了,你可千万别执行啊
你要执行了,哭都来不及了
就把你所有的表都给删啦
都快我忘了where子句
看看下面这个吧
*****************************
declare @tbname nvarchar(40),
@loop int
if exists(select * from sysobjects where name like 'mms%' and objectproperty(id,N'isusertable') = 1)
select id = identity(int,1,1),
tbname = name
into #temp01
from sysobjects
where name like 'mms%'
and objectproperty(id,N'isuertable') = 1
set @loop = @@rowcount
while @loop >= 1
begin
select @tbname = tbname
from #temp01
where id = @loop
execute ('drop table' + @tbname)
set @loop = @loop - 1
end
lalakid 2004-08-31
  • 打赏
  • 举报
回复
declare @tbname nvarchar(40),
@loop int
if exists(select * from sysobjects where name like 'mms%' and objectproperty(id,N'isusertable') = 1)
select id = identity(int,1,1),
tbname = name
into #temp01
from sysobjects
set @loop = @@rowcount
while @loop >= 1
begin
select @tbname = tbname
from #temp01
where id = @loop
execute ('drop table' + @tbname)
set @loop = @loop - 1
end

pbsql 2004-08-31
  • 打赏
  • 举报
回复
declare @tb varchar(50)
while exists(select * from sysobjects where xtype='U' and name like 'mms%')
begin
select @tb=name from sysobjects where xtype='U' and name like 'mms%'
exec('drop table '+@tb)
end
userlogin 2004-08-31
  • 打赏
  • 举报
回复
动态SQL
zb1119 2004-08-31
  • 打赏
  • 举报
回复
具体的不记得了,是前几天工作遇到的问题。
表头mms的怎么写sql?
如果不是表头写sql会难很多吗?
pbsql 2004-08-31
  • 打赏
  • 举报
回复
是删除表名以mms开头的表吗?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧