Existe-t-il un moyen de rechercher une valeur (dans mon cas, il s'agit d'un UID du type char(64)
) dans n'importe quelle colonne de n'importe quelle table dans une base de données MS SQL Server?
Je suis assis devant une énorme base de données sans aucune idée de la façon dont les tables devaient être liées entre elles. Pour le savoir, j'aimerais lister toutes les tables et les colonnes qui contiennent une certaine valeur dans n'importe quelle ligne. Est-ce possible?
Une façon pourrait être de simplement vider la base de données entière dans un fichier texte et d'utiliser n'importe quel éditeur de texte pour rechercher la valeur - mais ce serait une pure douleur si la base de données est trop grande.
Réponses:
http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm
EDIT: Voici le T-SQL réel, en cas de pourriture du lien:
la source
Tous les outils tiers mentionnés ci-dessous sont 100% gratuits.
J'ai utilisé ApexSQL Search avec un bon succès pour rechercher à la fois des objets et des données dans des tables. Il est livré avec plusieurs autres fonctionnalités telles que des diagrammes de relations, etc.
J'étais un peu lent sur les bases de données volumineuses (base de données TFS de 40 Go)…
En dehors de cela, il existe également un pack d'outils SSMS qui offre de nombreuses autres fonctionnalités très utiles même si elles ne sont pas directement liées à la recherche de texte.
la source
J'ai développé le code, car il ne m'a pas dit le '
record number
', et je dois le retrouver.la source
Source: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
J'ai une solution d'il y a quelque temps que j'ai continué à améliorer. Recherche également dans les colonnes XML si on vous le demande, ou recherche des valeurs entières si vous ne fournissez qu'une chaîne entière.
la source
J'ai trouvé une solution assez robuste sur https://gallery.technet.microsoft.com/scriptcenter/c0c57332-8624-48c0-b4c3-5b31fe641c58 , que j'ai pensé qu'il valait la peine de souligner. Il recherche les colonnes de ces types: varchar, char, nvarchar, nchar, text. Il fonctionne très bien et prend en charge la recherche de table spécifique ainsi que plusieurs termes de recherche.
la source
Un joli script est disponible sur http://www.reddyss.com/SQLDownloads.aspx
Pour pouvoir l'utiliser sur n'importe quelle base de données, vous pouvez le créer comme dans: http://nickstips.wordpress.com/2010/10/18/sql-making-a-stored-procedure-available-to-all-databases/
Je ne sais pas s'il existe un autre moyen.
Pour l'utiliser, utilisez quelque chose comme ceci:
la source
Après avoir essayé la solution de @ regeter et vu qu'elle n'a pas résolu mon problème lorsque je cherchais une clé étrangère / primaire pour voir toutes les tables / colonnes où elle existe, cela n'a pas fonctionné. Après avoir lu comment cela a échoué pour un autre qui a essayé d'utiliser un identifiant unique, j'ai apporté les modifications et voici le résultat mis à jour: (fonctionne à la fois avec int et guids ... vous verrez comment étendre facilement)
la source