Jeg vil søke etter en streng i navnene på kolonnene som er tilstede i en database.
Jeg jobber med et vedlikeholdsprosjekt, og noen av databasene jeg har med har mer enn 150 tabeller, så jeg ser etter en rask måte å gjøre dette på.
Hva anbefaler du?
Kommentarer
- lignende spørsmål stilt i SO
- god artikkel. Tusen takk. Jeg brukte også TM Field Finder og den ' er veldig kraftig når det gjelder søk i SQL-skjema og også data.
- Relatert: Utforske databaseskjemaet ditt med SQL
Svar
Du kan bruke følgende spørsmål til å liste opp alle kolonner eller søkekolonner på tvers av tabeller i en database.
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;
Du kan bruke informasjon_skjema -visninger for å liste alle objekter i SQL Server 2005 eller 2008-databaser.
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/
Svar
Det er også SQL Search – et gratis verktøy som integreres med SQL Server Management Studio.
Kommentarer
- SQL-søk er et godt verktøy, men husk at resultatvinduet er vilkårlig begrenset til, tror jeg, 250 resultater. Sist jeg brukte dette verktøyet, hadde ikke Red Gate en måte å løfte denne begrensningen på. Når det er sagt, er det fortsatt et veldig nyttig verktøy, og jeg vil anbefale det til enhver SQL Server DBA eller utvikler. Prisen er også riktig!
Svar
Sent en, men forhåpentligvis nyttig siden begge verktøyene er gratis.
ApexSQL Search – bra med dette verktøyet er at det også kan søke i data, vise avhengigheter mellom objekter og par andre nyttige ting.
SSMS Toolpack – gratis for alle versjoner unntatt SQL 2012. Mange flotte alternativer som ikke bare er relatert til søk, for eksempel utdrag, forskjellige tilpasninger og mer.
Svar
Dette er en som alle SQL DBA fra gammel tid bruker.
EXEC sp_help "your table name";
Hvis det bare er med én linje, trenger du ikke engang å skrive EXEC. Bare gjør
sp_help "your table name"