SQL Server Management Studioの - テーブルリスト内の複数のフィルタを使用していますか?
-
06-09-2019 - |
質問
Management Studioで、あなたは右の表リストのフィルタを作成するには、テーブルのグループをクリックすることができます。誰もが、フィルタに複数のテーブルを含める方法を考え出していますか?例えば、私が表示されるまで「br_*
」と「tbl_*
」とのすべてのテーブルをしたいと思います。
誰もこれを行う方法を知っていますか?
解決
あなたは、あなたが探しているものを行うことができるようになるSMSSに独自のアドオンをロールすることができるかもしれません。
<のhref = "http://jcooney.net/post/2007/11/26/The-Black-Art-of-Writing-a-SQL-Server-Management-Studio-2005-Add-In。 ASPX」のrel = "noreferrer">ライティングのブラックアートSQL Server Management Studioの2005アドインする
アドインでSQL Server 2005のManagement Studioで機能を拡張 の
最初のものは、あなたが探しているもののためにその時に拡大することができるかもしれませんので、指定された名前を持つすべてのスキーマ・オブジェクトを検索し、表示するための、具体的である。
他のヒント
いいえ、あなたはこれを行うことはできません。 _
、%
、*
、"
、'
、&&
、&
、and
、or
、|
、||
、等...
私は非常にいいフィルタリングオプションを持っているSQL Serverの(フリーウェア版)のためにヒキガエルを使用しました。
私は、SQL Server Management Studioののv17.1を使用することだし、それはそれのフィルタ構成にSQLインジェクションのバグを持っているので、あなたが実際にデフォルトの
をエスケープすることができますtbl.name like '%xxx%'
と(一部制限あり)、独自のクエリを記述します。 「_arch」、「_HIST」で終了しているテーブルをフィルタリングする、例えば、「_purge」私は
次のフィルタ値を使用しました_arch') and RIGHT(tbl.name, 5) != N'purge' and RIGHT(tbl.name, 4) != N'hist' and not(tbl.name like N'bbb
あなたは構築されたクエリを確認し、必要に応じてそれを調整するために、SQL Serverプロファイラを使用することができます。
この同じバグが以前のSQL Management Studioのバージョンで利用可能であるか、それが修正されますと、今のところ、私は結果に満足している場合はわからない。
最初はそれがCONTAINS
クエリ(例えば"br_*" OR "tbl_*"
)を使用することができますように見えますが、それはしていないようです。それだけにしLIKE
句(例えば'app'
が'%app%'
なる)に渡された値をサポートするように思われます。
他の人として、あなたは、SQL Server Management Studioの(アップおよび2014を含む)でこれを行うことができない、と述べています。
これはあなたが必要とするすべてである場合は、次のクエリでは、あなたのテーブルのフィルタリングされたリストを提供します。
SELECT
CONCAT(TABLE_SCHEMA, '.', TABLE_NAME) AS TABLE_SCHEMA_AND_NAME,
TABLE_SCHEMA,
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA IN ('X', 'Y', 'Z') -- schemas go here
ORDER BY
TABLE_SCHEMA,
TABLE_NAME;
%
シンボルの周りにブラケットを置くものの、SQLインジェクション法は依然として、SSMS 2017 v17.8.1のように(多少)動作します。
あなたが名 - >が含まれ、フィルタを使用している場合は、は、プロファイラを示しています。
... AND dtb.name LIKE N'%MyDatabase1%')
だから、品名 - で>フィールドが含まれています:MyDatabase1') OR (dtb.name LIKE 'MyDatabase2
は、単純な例のためにそれを行う必要があります。
あなたの運で、私はちょうど、その偉業を征服しました。
これは、私が知っている古いですが、それはあなたが入力したばかりの「フィルタ」テキストを入力する場合、それが動作することができることを知って良いことです。ただ*
または%
を入力するか、または何でもあなたがフィルタリングする、br_
またはtbl_
または任意の他の標準的な検索文字をスキップします。