it-swarm-eu.dev

Jak mohu vypsat nebo prohledat všechny názvy sloupců v databázi?

Chci hledat řetězec v názvech sloupců přítomných v databázi.

Pracuji na projektu údržby a některé databáze, se kterými se zabývám, mají více než 150 tabulek, takže hledám rychlý způsob, jak to udělat.

Co doporučuješ?

38
Webber

Následující dotaz můžete použít k výpisu všech sloupců nebo sloupců vyhledávání napříč tabulkami 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; 

K zobrazení všech objektů v databázích SQL Server 2005 nebo 2008 můžete použít zobrazení information_schema .

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

K dispozici je také SQL Search - bezplatný nástroj, který se integruje s SQL Server Management Studio.

alt text

8

Pozdější, ale snad užitečné, protože oba nástroje jsou zdarma.

ApexSQL Search - dobrá věc o tomto nástroji je, že umí také vyhledávat data, zobrazovat závislosti mezi objekty a pár dalších užitečných věcí.

enter image description here

SSMS Toolpack - zdarma pro všechny verze kromě SQL 2012. Mnoho skvělých možností, které se netýkají pouze vyhledávání, jako jsou úryvky, různá přizpůsobení a další.

enter image description here

5
Stanley Norman

Toto je vše, co všechny staré SQL DBA používají.

EXEC sp_help 'your table name';

Pokud pouze s jedním řádkem, nemusíte psát EXEC. Jen to udělej

sp_help 'your table name'
1
PhilRoan