Jag vill söka efter en sträng i namnen på de kolumner som finns i en databas.
Jag arbetar med ett underhållsprojekt och en del av de databaser som jag hanterar har mer än 150 tabeller, så jag letar efter ett snabbt sätt att göra detta.
Vad rekommenderar du?
Kommentarer
- liknande fråga i SO
- bra artikel. Tack så mycket. Jag använde också TM Field Finder och det ' är verkligen kraftfullt när det gäller sökning i SQL Schema och även data.
- Relaterat: Utforska ditt databasschema med SQL
Svar
Du kan använda följande fråga för att lista alla kolumner eller sökkolumner över tabeller i en databas.
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 använda information_schema för att lista alla objekt 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 finns också SQL-sökning – ett gratis verktyg som integreras med SQL Server Management Studio.
Kommentarer
- SQL-sökning är ett bra verktyg, men kom ihåg att resultatfönstret är godtyckligt begränsat till, tror jag, 250 resultat. Förra gången jag använde det här verktyget hade Red Gate inget sätt att lyfta denna begränsning. Med detta sagt är det fortfarande ett mycket användbart verktyg och jag skulle rekommendera det till alla SQL Server DBA eller utvecklare. Priset är också rätt!
Svar
Sent men förhoppningsvis användbart eftersom båda verktygen är gratis.
ApexSQL-sökning – bra med det här verktyget är att det också kan söka i data, visa beroenden mellan objekt och para andra användbara saker.
SSMS Toolpack – gratis för alla versioner utom SQL 2012. Många bra alternativ som inte bara är relaterade till sökning som utdrag, olika anpassningar och mer.
Svar
Detta är en som alla SQL DBA från förr använder.
EXEC sp_help "your table name";
Om det bara är med en rad behöver du inte ens skriva EXEC. Gör bara
sp_help "your table name"