你所谓的空如果是NULL的话那可以写一段代码搞定(以下代码是sqlserver中的,请确保选中所需运行的数据库) declare @tablename nvarchar(50); declare @sql nvarchar(max); set @tablename='贷款表' set @sql=''; select @sql=@sql+'select '''+name+''',count(*) from '+ @tablename +' where '+ name + ' is null union ' from syscolumns where id = object_id(@tablename) set @sql=SUBSTRING(@sql,1,len(@sql)-6) exec(@sql) 但如果是'',那就会有问题,因为存在不同类型的字段,比如数字型的和字符型的空的形式就不一样,除非你确保所有字段都是字符型的才可以用,把is null修改为=''''