Question

Je suis à la recherche de données dans le projet de gommage migration à partir d'un système existant développé sur SQL Server 2005, mais le premier ordre du jour est de savoir quelles colonnes ne sont pas vraiment en cours d'utilisation.

La logique générale de mon approche est d'identifier les colonnes qui sont la plupart du temps laissés en blanc (à savoir, la plupart ou toutes les lignes contiennent des valeurs nulles, pour cette colonne, dans ce tableau). Ce serait exécuté en tant que procédure stockée, où la sortie idéale serait quelque chose comme:

TABLE: contacts (10000 records)
---------------------------------
FIELD: id | 0 (0%) Null Records
FIELD: username | 0 (0%) Null Records
FIELD: phonenumber | 8,200 (82%) Null Records
FIELD: email | 300 (3%) Null records
FIELD: icq | 9,900 (99%) Null Records
FIELD: zip | 100 (1%) Null Records

Voici les prises: quelques tables ont plus de 100 colonnes, donc la vraie clé est la procédure à boucle à travers les colonnes d'une table donnée, donc je n'ai pas à clé dans une longue chaîne de noms de colonnes pour exécuter le requete. Toute aide sur la façon de le faire serait génial,

Merci.

Était-ce utile?

La solution

Vous pouvez utiliser les métadonnées de colonne pour créer des requêtes comme ceci:

select 'select ''' + table_name + ''' table_name, ''' 
+ column_name + ''' column_name, count(*) nullcount '
+ 'from [' + table_name + '] where [' + column_name + '] is null '
from information_schema.columns

Si vous exécutez la requête ci-dessus, vous obtiendrez une liste de requêtes de sélection. Le copier-coller dans un éditeur de texte et insérer « union tout » entre les choisit, il ressemblera à ceci:

select 'companies' table_name, 'id' column_name, count(*) nullcount from [companies] where [id] is null 
union all
select 'companies' table_name, 'code' column_name, count(*) nullcount from [companies] where [code] is null 
union all
...

Ensuite, exécutez les sélections filles fusionnées.

Pour la liste des tables, vous pouvez utiliser la même astuce avec des métadonnées dans INFORMATION_SCHEMA.TABLES.

Ensuite, combiner les deux listes dans Excel à l'aide vlookup, ou de construire des requêtes plus complexes avec les sous-requêtes en utilisant INFORMATION_SCHEMA.TABLES et INFORMATION_SCHEMA.COLUMNS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top