现在要将数据库旧的数据进行整理,不过旧的数据表几百个字段(用友的你懂的),一大堆根本就没有用的,全是NULL的,怎么将那些全是NULL的字段排除,只列出不全是NULL(只要其中1个有数据都要)。
------解决方案--------------------
--t1换成你的表名
declare @sql nvarchar(max)=N'declare @s nvarchar(max)='''';';
select @sql=@sql+ 'if exists(select * from t1 where '+name+' is not null) set @s=@s+'''+name+','''
from sys.columns where object_id=object_id('t1')
select @sql=@sql+'set @s=substring(@s,1,len(@s)-1);';
select @sql=@sql+'set @s=''select '' +@s +'' from t1'' ;';
select @sql=@sql+'exec(@s)';
exec (@sql)