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