永发信息网

sql删除数据库所有表

答案:6  悬赏:80  手机版
解决时间 2021-06-06 22:06

比如数据库中有10张表,现在要对这10张表进行物理性删除,应该用哪个命令啊,知道的告诉一下,谢谢

最佳答案

use 数据库名(是要删除表的所在的那个数据库的名称)
GO
declare @sql varchar(8000)
while (select count(*) from sysobjects where type='U')>0
begin
SELECt @sql='drop table ' + name
FROM sysobjects
WHERe (type = 'U')
ORDER BY 'drop table ' + name
exec(@sql)
end


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


use 数据库一定要填对哦......

全部回答

问题问的很雷人。你是说MYSQL还是MSSQL?

但是有个最终解决办法。

就是: 删除这个库。之后从新建立这个库。不就删除所有表了嘛。 哈哈。

1.搜索出所有表名,构造为一条SQL语句

declare @trun_name varchar(8000) set @trun_name='' select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from sysobjects where xtype='U' and status > 0 exec (@trun_name)

该方法适合表不是非常多的情况,否则表数量过多,超过字符串的长度,不能进行完全清理. 2.利用游标清理所有表

declare @trun_name varchar(50) declare name_cursor cursor for select 'truncate table ' + name from sysobjects where xtype='U' and status > 0 open name_cursor fetch next from name_cursor into @trun_name while @@FETCH_STATUS = 0 begin exec (@trun_name) print 'truncated table ' + @trun_name fetch next from name_cursor into @trun_name end close name_cursor deallocate name_cursor

这是我自己构造的,可以做为存储过程调用, 能够一次清空所有表的数据,并且还可以进行有选择的清空表. 3.利用微软未公开的存储过程

exec sp_msforeachtable "truncate table ?"

select 'Drop table '||table_name||';' from all_tables where owner="你要删除的用户名(注意要大写)";

use test drop table testid

其中test为数据库名

testid为数据表名

EXECUTE sp_msforeachtable 'delete from ?' 或者 EXECUTE sp_msforeachtable 'truncate table ?'
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我喜欢他应该怎么办啊?
斗地主【世博会推荐游戏】
谁知道周顺安有没有女朋友
经常头痛,眼睛也不舒服。为什么
高三应该怎么复习呢!理科
黄陂区武汉秦妈火锅(今古城店)地址在什么地方
怎样才是正确的练声方法?
和自己喜欢的人失去一切联系该怎么办?
现在结婚登记的年龄是多少啊
哪些卡不能放在一起?
怎样向暗恋的女孩子表白
09年申请赴港照顾父母定居需要多久
日本动漫画家宫崎骏的所有作品
龙亭区开封生命科学学院生物学基础实验教学中
来一份绯闻少女里面S的详细资料
推荐资讯
女同胞们看一下!
QQ飞车里面的车、现在那辆S车最好?
香坊区哈尔滨荟宝专柜哪位知道具体地址啊
自由幻想43ZS维护
不要离开我的句子,既然不爱我,为什么不放我
香砂六君丸砂仁是什么,香砂六君子丸 和香砂六
怎么用橡皮泥捏猴子,如何DIY捏橡皮泥方法图解
给锡组词给这个字组词
手机支付宝在哪改密码,支付宝钱包支付密码在
父亲与大哥吵架
学会自我保护的名言就是可以写在保护自己的作
诺基亚5310XM湖州市区最低售价多少?在哪里有
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?