中易网

如何可以过滤SQL数据库中表的字段记录为空的表?

答案:3  悬赏:0  
解决时间 2021-04-07 06:20
就是说,某数据库里各种表,表里只有字段名但没有记录的表都不要,该怎么弄?望详细解答,谢谢。

不是要一个个的表看,是一下子可以过滤掉没有数据的表。
最佳答案
declare @cur cursor
declare @n nvarchar(500)
declare @r as int
declare @sql nvarchar(500)
set @cur= cursor for
SELECt name FROM sysobjects WHERe (xtype = 'u')

open @cur
FETCH NEXT FROM @cur INTO @N
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql ='if not exists(SELECt * FROM ' + @n + ') drop table ' + @n
--exec sp_executesql @sql --我先注释了这一行,注意危险,你确认一下
print @sql
FETCH NEXT FROM @cur INTO @N
END

你的问题是改了又改,我的回答也改了又改
上面的回答中: exec sp_executesql @sql 就把没有行的表给删除了,看注释
如果你要列出表的话,如下:
set nocount on
declare @cur cursor
declare @n nvarchar(500)
declare @r as int
declare @sql nvarchar(500)
set @cur= cursor for
SELECt name FROM sysobjects WHERe OBJECTPROPERTY(id, N'IsUserTable') = 1
declare @tb table (name nvarchar(50) ,rows int)

open @cur
FETCH NEXT FROM @cur INTO @N
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql = 'select @c=count (*) from ' + @n
print @n
exec sp_executesql @sql, N'@c int output',@c=@r output
insert into @tb (name,rows) values(@n,@r)
FETCH NEXT FROM @cur INTO @N
END

--select * from @tb --如果你要每个表名称和行数
select name from @tb where rows=0 --这样就是没有记录的表名

手工打字,可能出错,还是要你自己测试一下,

要这点分数还真有点难
全部回答
sql 2005/08 可以用 row_number 处理 -- 测试表 declare @tb_test table(     col1 int,     col2 int ); insert @tb_test select 1, 1 union all select 1, 1 union all select 1, 2 union all select 1, 2; -- 删除处理 with data as(     select rid = row_number() over(partition by col1, col2 order by  col1, col2),         *     from @tb_test ) delete from data where rid <> 1; -- 显示处理结果 select * from @tb_test;
select * from 表 where 字段1 is not null or 字段1!=''
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求几首好听的欧美舞曲!!!
贝卡特纺织品(无锡)生产经理姓名及联系方式
蜀山新传怎么获得荣誉点?
康佳液晶电视工厂菜单最上显示的时间是什么意
交通事故造成人身伤害的,保险公司理赔之后,
你爱春天吗,说说你的理由飞
怎么和英语外教碰面之后打招呼?
上网的男的有不看片的么?
谁有《一步之遥》柴亮版本小提琴独奏谱?
姓马的家,帮,玉字辈下面如何排序的
为什么我家的狗在乡下很活泼在城里很懒
联想笔记本m495键盘和触摸板失灵怎么办呢?鼠
汽车仪表盘上这两个图标是什么图标,有什么作
根号下300化简
九龙庙我想知道这个在什么地方
推荐资讯
潮我看互联网美发在哪里啊,我有事要去这个地
淘宝上有没有专卖Zara的店铺。
pro/e 5.0对电脑有什么要求
Oracle数据分类统计的sql语句怎么写
八年前带孩子的时候,左侧小腿肚上出现了看得
长江证券修改密码如何操作
请问一下现在的魔兽世界副本分配机制是怎么样
新鲁大师9800GT实测跑分有多少
狂欢区黑风魂还会涨价吗
在Excel表一中是房源,我需要在表二输入房号
vivo27手机显示储存已满不可以看图片了怎么办
华晟医疗专卖(远洋城店)地址在什么地方,想过
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?