回答

收藏

如何在SQL Server数据库架构中找到所有用100%空值填充的列?

技术问答 技术问答 73 人阅读 | 0 人回复 | 2023-09-12

是否有SQL该方法可以找出结构中的哪些列完全充满空值?我知道几个表中的某些字段不会被应用程序使用和删除,但我想检查是否有一种自动方法/脚本在整个数据库中找到字段/脚本以寻找代码审查的候选人/可能的删除。
4 Y; f9 l* C3 p; f. ?; Y若重要,请在x86上运行SQL Server 2005。$ r3 |+ M- G5 t4 }$ e. ~
提前致谢!; p6 D& s: a* ]- Q* K) a1 c
                                                                4 r% n- v; P3 q9 m5 ?8 i
    解决方案:                                                                ) S% r8 ]6 }, u- I+ U  x
                                                                create table #SuspectColumns  TABLE_SCHEMA sysname,   TABLE_NAME sysname,   COLUMN_NAME sysname)declare csrColumns cursor fast_forward for    select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME        from INFORMATION_SCHEMA.COLUMNS        where IS_NULLABLE = 'YES'declare @TABLE_SCHEMA sysname,       @TABLE_NAME sysname,       @COLUMN_NAME sysname,       @sql nvarchar(max)open csrColumnswhile (1=1) begin    fetch next        from csrColumns        into @TABLE_SCHEMA,@TABLE_NAME,@COLUMN_NAME    if @@FETCH_STATUS0 break    set @sql = N'if not exists(select 1 from '   QUOTENAME(@TABLE_SCHEMA)   N'.'   QUOTENAME(@TABLE_NAME)   N' where '   QUOTENAME(@COLUMN_NAME)   N'is not null)                     insert into #SuspectColumns values    @TABLE_SCHEMA   N@TABLE_NAME   N@COLUMN_NAME   N      exec sp_executesql @sqlend /* while */close csrColumnsdeallocate csrColumnsselect * from #SuspectColumnsdrop table #SuspectColumns
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则