Как мы можем проверить заполненность столбцов таблицы или нет с помощью хранимой процедуры? - PullRequest
0 голосов
/ 06 апреля 2011

Я спрашиваю об этом, потому что я очень плохо знаком с хранимой процедурой.Может ли кто-нибудь помочь мне в написании хранимой процедуры для проверки, заполнены ли значения столбцов таблицы или нет, с помощью хранимой процедуры?

, например: - У меня есть таблица с именем student.он содержит 5 столбцов. При этом почти 3 столбца имеют значения, а два других столбца не содержат значений.Итак, с помощью хранимой процедуры, как мы можем это сделать?

Ответы [ 3 ]

1 голос
/ 06 апреля 2011

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

declare @T table (Col1 int, Col2 int, Col3 int, Col4 int, Col5 int)

insert into @T values (1,    1,    1,    null, null)
insert into @T values (2,    2,    null, null, null)
insert into @T values (3,    null, null, null, null)
insert into @T values (null, null, null, null, null)

select [Column]
from 
  (select
     count(Col1) as Col1,
     count(Col2) as Col2,
     count(Col3) as Col3,
     count(Col4) as Col4,
     count(Col5) as Col5
   from @T) as T
unpivot
   ([Count] for [Column] in 
      (Col1, Col2, Col3, Col4, Col5)
) as unpvt
where [Count] = 0

Результат

Column
------
Col4
Col5
0 голосов
/ 06 апреля 2011

Если это однократная проверка, вы можете использовать вывод следующего скрипта, чтобы найти таблицы со столбцами только со значениями NULL.

Сценарий

SELECT  'IF NOT EXISTS (SELECT * FROM ' 
        + so.name
        + ' WHERE '
        + sc.name
        + ' IS NOT NULL) PRINT '''
        + so.name
        + '.'
        + sc.name
        + ''''
FROM    sys.columns sc
        INNER JOIN sys.objects so ON so.object_id = sc.object_id        
WHERE   so.type = 'U'

Результаты

 IF NOT EXISTS (SELECT * FROM Table WHERE Column IS NOT NULL) PRINT 'Table.Column'  
0 голосов
/ 06 апреля 2011

Вы можете использовать @@ ROWCOUNT (Transact-SQL) , чтобы получить количество строк, затронутых последним оператором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...