web-dev-qa-db-fra.com

Comment répertorier ou rechercher tous les noms de colonne dans ma base de données?

Je souhaite rechercher une chaîne dans les noms des colonnes présentes dans une base de données.

Je travaille sur un projet de maintenance et certaines des bases de données avec lesquelles j'ai affaire ont plus de 150 tables, donc je cherche un moyen rapide de le faire.

Que recommandez-vous?

38
Webber

Vous pouvez utiliser la requête suivante pour répertorier toutes les colonnes ou rechercher des colonnes dans les tables d'une base de données.

USE AdventureWorks 
GO 
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%EmployeeID%'
ORDER BY schema_name, table_name; 

Vous pouvez utiliser les vues information_schema pour répertorier tous les objets dans les bases de données SQL Server 2005 ou 2008.

SELECT * FROM information_schema.tables

SELECT * FROM information_schema.columns

http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from-all-tables-of-database/

39
CoderHawk

Il existe également SQL Search - un outil gratuit qui s'intègre à SQL Server Management Studio.

alt text

8
Marek Grzenkowicz

Un en retard mais avec un peu de chance car les deux outils sont gratuits.

Recherche ApexSQL - une bonne chose à propos de cet outil est qu'il peut également rechercher des données, afficher les dépendances entre les objets et coupler d'autres choses utiles.

enter image description here

SSMS Toolpack - gratuit pour toutes les versions sauf SQL 2012. Un grand nombre d'options intéressantes qui ne sont pas uniquement liées à la recherche, telles que des extraits de code, diverses personnalisations et plus encore.

enter image description here

5
Stanley Norman

C'est celui que tous les SQL DBA de l'ancien temps utilisent.

EXEC sp_help 'your table name';

Si seulement avec une seule ligne, vous n'avez même pas besoin de taper EXEC. Fais juste

sp_help 'your table name'
1
PhilRoan