Это должно дать Вам список всех столбцов в таблице "Person", которая имеет только Нулевые значения. Вы получите результаты как несколько наборов результатов, которые или пусты, или содержит название отдельного столбца. Необходимо заменить "Человека" в двух местах для использования его с другой таблицей.
DECLARE crs CURSOR LOCAL FAST_FORWARD FOR SELECT name FROM syscolumns WHERE id=OBJECT_ID('Person')
OPEN crs
DECLARE @name sysname
FETCH NEXT FROM crs INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC('SELECT ''' + @name + ''' WHERE NOT EXISTS (SELECT * FROM Person WHERE ' + @name + ' IS NOT NULL)')
FETCH NEXT FROM crs INTO @name
END
CLOSE crs
DEALLOCATE crs
Если вы включите анализ решения в ReSharper (5.0 и выше), он пометит их за вас. Сюда входят общедоступные методы.
Черт возьми, я сделал это по старинке. Я просто комментирую методы, которые, как мне кажется, не используются и создаются. Если я получаю сообщение об ошибке, я оставляю его там.