0

多くのデータベースと、それらのデータベース内の多くのテーブルがあります。特定のものを探しています。テーブルの名前は知っていますが、すべてのデータベースを手動で検索するのは簡単ではありません。名前でテーブルを検索するには、どの SQL ステートメントを使用できますか?

ところで、Microsoft SQL Server Management Studio を使用しています。このプログラム内でテーブルを名前で検索する別の方法があるのではないでしょうか?

4

3 に答える 3

3

あなたは、この記事にたどり着くはずだった検索を行ったと言いました:

http://blog.sqlauthority.com/2008/04/29/sql-server-find-table-in-every-database-of-sql-server/

そうでない場合は、それに従います。基本的に彼が作成するのは、すべてのデータベースで指定したすべてのテーブル名を検索するストアド プロシージャです。

これを行う場合:

select * from sys.tables where name like '%tablename%'

毎回データベースを変更する必要があり、データベースが多い場合は問題が発生します。

于 2014-06-02T02:58:01.563 に答える
1

多くのdBの中からテーブルを見つけるために、現在使用しているソリューションで更新すると思いました。いくつか検索したところ、次のクエリが見つかりました。

/*Finds a table across multiple dBs and returns the dB(s) in which the table was found*/
SELECT  DISTINCT DB_NAME(database_id) 
FROM [sys].[dm_db_index_operational_stats](NULL,NULL,NULL,NULL)
WHERE OBJECT_NAME(object_id,database_id) = 'table name'

このクエリは、テーブルを保持する dB を見つけます。次に、Microsoft SQL Server Mgmt Studio で [オブジェクト エクスプローラー] ウィンドウに移動し、クエリによって識別された dB を見つけて、その内容を展開し、[テーブル] フォルダーをクリックします。次に、フィルター ツールを使用してテーブルを名前で検索します。フィルタ ツールが Databases フォルダで機能するのであればよいのですが、そうではありません。フィルタリングする前に、Tables フォルダーを選択する必要があります。

これは最善の解決策ではないかもしれませんが、私にとってはうまくいきます。

于 2014-06-13T12:11:04.727 に答える