导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

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

DenverYao 2003-12-18 10:48:29
如题,我没有删掉数据库的权限,只能用查询分析器,不能进企业管理器。
先谢谢大家
...全文
11 点赞 收藏 10
写回复
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 表名
回复
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'

再一个个删除.

回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告