Chci vyhledat řetězec ve jménech sloupců přítomných v databázi.
Pracuji na projektu údržby a některé databáze, se kterými pracuji, mají více než 150 tabulek, takže hledám rychlý způsob, jak to udělat.
Co doporučujete?
Komentáře
- podobná otázka položená v SO
- dobrý článek. Mnohokrát děkuji. Použil jsem také TM Field Finder a ten ' je opravdu výkonný v oblasti vyhledávání ve schématu SQL a také v datech.
- Související: Zkoumání vašeho databázového schématu pomocí SQL
Odpověď
Pomocí následujícího dotazu můžete zobrazit všechny sloupce nebo prohledávat sloupce v tabulkách v databázi.
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;
Můžete použít zobrazení information_schema a vypsat všechny objekty v databázích serveru SQL Server 2005 nebo 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/
Odpovědět
K dispozici je také SQL Search – bezplatný nástroj, který lze integrovat s SQL Server Management Studio.
Komentáře
- Hledání v SQL je dobrý nástroj, ale mějte na paměti, že okno výsledků je libovolně omezeno na 250 výsledků. Když jsem naposledy použil tento nástroj, Red Gate neměl způsob, jak toto omezení zrušit. Jak již bylo řečeno, je to stále velmi užitečný nástroj a doporučil bych ho každému DBA nebo vývojáři serveru SQL Server. Cena je také správná!
Odpověď
Pozdní, ale doufejme užitečná, protože oba nástroje jsou zdarma.
ApexSQL Search – dobrá věc na tomto nástroji je, že může také vyhledávat data, zobrazovat závislosti mezi objekty a několik dalších užitečných věcí.
SSMS Toolpack – zdarma pro všechny verze kromě SQL 2012. Mnoho skvělých možností, které nesouvisí pouze s vyhledáváním, jako jsou úryvky, různá přizpůsobení a další.
Odpověď
Toto je jeden, který používají všechny SQL DBA od dávných dob.
EXEC sp_help "your table name";
Pokud pouze s jedním řádkem, nemusíte ani psát EXEC. Stačí udělat
sp_help "your table name"