Jeg vil søge efter en streng i navnene på de kolonner, der findes i en database.
Jeg arbejder på et vedligeholdelsesprojekt, og nogle af de databaser, jeg beskæftiger mig med, har mere end 150 tabeller, så jeg leder efter en hurtig måde at gøre dette på.
Hvad kan du anbefale det?
Kommentarer
- lignende spørgsmål stillet i SO
- god artikel. Mange tak. Jeg brugte også TM Field Finder, og den ' er virkelig stærk med hensyn til søgning i SQL-skema og også data.
- Relateret: Udforskning af dit databaseskema med SQL
Svar
Du kan bruge følgende forespørgsel til at liste alle kolonner eller søgekolonner på tværs af 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 bruge information_schema visninger til at 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
Der er også SQL-søgning – et gratis værktøj, der integreres med SQL Server Management Studio.
Kommentarer
- SQL-søgning er et godt værktøj, men husk at resultatvinduet er vilkårligt begrænset til, tror jeg, 250 resultater. Sidste gang jeg brugte dette værktøj, havde Red Gate ikke en måde at løfte denne begrænsning på. Når det er sagt, er det stadig et meget nyttigt værktøj, og jeg vil anbefale det til enhver SQL Server DBA eller udvikler. Prisen er også rigtig!
Svar
Sent, men forhåbentlig nyttigt, da begge værktøjer er gratis.
ApexSQL-søgning – god ting ved dette værktøj er, at det også kan søge i data, vise afhængigheder mellem objekter og parre andre nyttige ting.
SSMS Toolpack – gratis til alle versioner undtagen SQL 2012. En masse gode muligheder, der ikke kun er relateret til søgning som uddrag, forskellige tilpasninger og mere.
Svar
Dette er en, som alle SQL DBA fra gammel tid bruger.
EXEC sp_help "your table name";
Hvis det kun er med en enkelt linje, behøver du ikke engang at skrive EXEC. Bare gør
sp_help "your table name"