如何在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 |
|
|
|
|
|