2016-02-04 3 views
1

У меня большой CDS_CQM базы данных я хочу найти список столбцов в базе данных только с нулевыми значениями Любые помогает радушныКак найти список столбцов с нулевыми значениями?

+0

вы имеете в виду столбцов, что позволяет ню LLS? – bmsqldev

+0

Вы даже пытались написать запрос, чтобы сделать это? Что-то просто, как '... WHERE IS NULL' – Raj

+0

Возможный дубликат [SQL: выберите столбцы только с значениями NULL] (http://stackoverflow.com/questions/63291/sql-select-columns-with-null- только значения) –

ответ

1

Я думаю, что это поможет найти список всех столбцов, которые не имеют никаких данных в нем

Create Procedure spGetColumnsWithAllNullValues 
( 
    @Database Varchar (100), 
    @Schema  Varchar (100), 
    @Table  Varchar (100) 
) 
As Begin 

    Declare @Column Varchar (100) 

    Declare @Columns Table 
    (
     ColumnName Varchar (100) 
    ) 

    Declare @Results Table 
    (
     ColumnName Varchar (100) 
    ) 

    Declare @Temp Table 
    (
     Result Bit 
    ) 

    Insert @Columns 
    Select COLUMN_NAME 
    From INFORMATION_SCHEMA.COLUMNS 
    Where IS_NULLABLE = 'YES' 
    And  TABLE_CATALOG = @Database 
    And  TABLE_SCHEMA = @Schema 
    And  TABLE_NAME = @Table 

    Declare cur Cursor For 
    Select ColumnName 
    From @Columns 

    Open cur 

    While (1 = 1) 
    Begin 
     Fetch Next From cur Into @Column 

     If (@@FETCH_STATUS <> 0) Break 

     Declare @sql NVarchar(Max) = N'Select Case When Exists (Select * From ' 
            + QuoteName(@Database) + '.' 
            + QuoteName(@Schema) + '.' 
            + QuoteName(@Table) 
            + ' Where ' + QuoteName(@Column) + ' Is Not Null) Then 0 Else 1 End' 

     Delete @Temp 
     Insert @Temp Execute (@sql) 

     Insert @Results 
       (ColumnName) 
     Select @Column 
     From @Temp 
     Where Result = 1 
    End 

    Close cur   
    Deallocate cur 

    Select ColumnName 
    From @Results 
    Order By ColumnName 

End 
+0

Спасибо, что работает –

0

Если вам нужно, чтобы узнать столбцы с NULL constraint, попробуйте, как показано ниже

select *from INFORMATION_SCHEMA.columns 
where IS_NULLABLE = 'yes' 
+2

Нет, я спрашиваю, сколько столбцов есть в таблице со всеми нулевыми значениями. IS_nullable не обязательно означает, что данных нет в этом столбце –

Смежные вопросы