web-dev-qa-db-ja.com

データベース内のすべての列名をリストまたは検索するにはどうすればよいですか?

データベースに存在する列の名前の文字列を検索したいのですが。

私はメンテナンスプロジェクトに取り組んでおり、扱っているデータベースの一部には150を超えるテーブルがあるため、これを行う簡単な方法を探しています。

何がお勧めですか?

38
Webber

次のクエリを使用して、すべての列を一覧表示するか、データベース内のテーブル全体で列を検索できます。

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; 

information_schema ビューを使用して、SQL Server 2005または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/

39
CoderHawk

SQL Search -SQL Server Management Studioと統合する無料のツールもあります。

alt text

8

1つ後期ですが、両方のツールが無料であるため、うまくいけば役に立ちます。

ApexSQL Search –このツールの良いところは、データを検索したり、オブジェクト間の依存関係を表示したり、他の便利な機能を組み合わせたりできることです。

enter image description here

SSMS Toolpack – SQL 2012を除くすべてのバージョンで無料です。スニペット、さまざまなカスタマイズなど、検索だけに関連しない多くの優れたオプションがあります。

enter image description here

5
Stanley Norman

これは、昔からのすべてのSQL DBAが使用しているものです。

EXEC sp_help 'your table name';

1行のみの場合は、EXECと入力する必要すらありません。するだけ

sp_help 'your table name'
1
PhilRoan