(急)如何用一条语句删除当前数据库下所有的表啊?在线等

DenverYao 2003-12-18 10:48:29
如题,我没有删掉数据库的权限,只能用查询分析器,不能进企业管理器。
先谢谢大家
...全文
54 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
playyuer 2003-12-19
  • 打赏
  • 举报
回复
use YourDB
sp_MSforeachtable 'drop table ?'
gmlxf 2003-12-19
  • 打赏
  • 举报
回复
--删除多个表的语法是:
drop table t1,t2,t3...

而现在你需要的是删除当前数据库下的所有表,那么首先先得到这些表名字,然后构造drop语句进行删除,如下:

declare @tname varchar(8000)
set @tname=''
select @tname=@tname + Name + ',' from sysobjects where xtype='U'
select @tname='drop table ' + left(@tname,len(@tname)-1)
exec(@tname)
haipingma 2003-12-19
  • 打赏
  • 举报
回复
學習
dlpseeyou 2003-12-19
  • 打赏
  • 举报
回复
学习
goodboycwy 2003-12-19
  • 打赏
  • 举报
回复
受益!
pengdali 2003-12-19
  • 打赏
  • 举报
回复
while exists(select 1 from sysobjects where xtype='U' and and status>0)
exec sp_MSForEachTable 'drop table ?'


你把它当一句用,即使中间报错,也没关系。
dlpseeyou 2003-12-19
  • 打赏
  • 举报
回复
select Name from sysobjects where xtype='U'
delete 表名
zjcxc 元老 2003-12-19
  • 打赏
  • 举报
回复
use 你的数据库名
go
exec sp_MSforeachtable 'drop table ?'
txlicenhe 2003-12-19
  • 打赏
  • 举报
回复
sp_MSforeachtable 'drop table ?'

当然,如果有些表有外键关联的话,可能就不行了。
CrazyFor 2003-12-18
  • 打赏
  • 举报
回复
select Name from sysobjects where xtype='U'

再一个个删除.

34,838

社区成员

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

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