回答

收藏

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

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

是否有SQL该方法可以找出结构中的哪些列完全充满空值?我知道几个表中的某些字段不会被应用程序使用和删除,但我想检查是否有一种自动方法/脚本在整个数据库中找到字段/脚本以寻找代码审查的候选人/可能的删除。
, X# s) c- w2 Q& i若重要,请在x86上运行SQL Server 2005。% q* K5 G8 K0 A) n
提前致谢!
$ |" Z6 F4 Z. y2 F% U                                                               
3 ?, j# _: \% n) ^    解决方案:                                                               
5 r1 R: H* J, a2 R; }                                                                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
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则