打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
直接删除数据库中没有记录的空表

 

 

DECLARE @sjk varchar(50)
SELECT @sjk=DB_NAME(dbid) FROM master.dbo.sysprocesses WHERE status='runnable'
IF @sjk='master' or @sjk='model' or @sjk='msdb' or @sjk='tempdb'
    PRINT '
当前数据库为系统数据库 '+@sjk+' ,不能删除其中的空表!'
ELSE
    BEGIN
DECLARE tables CURSOR FOR SELECT name FROM sysobjects WHERE xtype='U'
DECLARE @t sysname
DECLARE @zbs int,@scs int
SET @zbs=0
SET @scs=0
OPEN tables
FETCH NEXT FROM tables INTO @t
WHILE @@FETCH_STATUS=0
BEGIN
SET @zbs=@zbs+1
IF (SELECT rows FROM sysindexes WHERE id=object_id(@t) and indid in(0,1))=0
BEGIN
EXEC('DROP TABLE '+@t)
SET @scs=@scs+1
END
FETCH NEXT FROM tables INTO @t
END
CLOSE tables
DEALLOCATE tables
PRINT '
数据库 '+@sjk+' 中的总表数:'+CAST(@zbs as varchar(10))
PRINT '
删除的空表数:'+CAST(@scs as varchar(10))
END
GO

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
sql 数据库中只靠一个数据,查询到所在表和列名
SQLServer2000:批量备份数据库
删除数据库所有存储过程的SQL语句
MSSQL從文件導入數據
在sql server数据库中快速删除记录,清空表
SQL Server数据库内容替换方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服