it-swarm.com.de

SQL Server Management Studio - Verwenden mehrerer Filter in der Tabellenliste?

In Management Studio können Sie mit der rechten Maustaste auf die Tabellengruppe klicken, um einen Filter für die Tabellenliste zu erstellen. Hat jemand eine Möglichkeit gefunden, mehrere Tabellen in den Filter aufzunehmen? Ich möchte zum Beispiel, dass alle Tabellen mit "br_*" und "tbl_*" angezeigt werden.

Weiß jemand, wie das geht?

30
bugfixr

Möglicherweise können Sie Ihr eigenes Addon zu SMSS rollen, damit Sie das tun können, wonach Sie suchen:

Die schwarze Kunst des Schreibens eines SQL Server Management Studio 2005 Add-Ins

Erweitern Sie die Funktionalität in SQL Server 2005 Management Studio mit Add-Ins

Die erste ist speziell für die Suche und Anzeige aller Schemaobjekte mit einem bestimmten Namen gedacht, so dass Sie möglicherweise das erweitern können, wonach Sie suchen.

6

Nein , das kannst du nicht. Als wir zum ersten Mal mit Management Studio angefangen haben, habe ich alle möglichen Kombinationen aus allem versucht, was Sie sich vorstellen können: _, %, *, ", ', &&, &, and, or, |, ||, etc ...

30
KM.

Ich habe Toad für SQL Server (Freeware-Version) verwendet, das sehr schöne Filteroptionen bietet. 

2
Etni

Auf den ersten Blick sieht es so aus, als könnte eine CONTAINS-Abfrage (z. B. "br_*" OR "tbl_*") verwendet werden, dies scheint jedoch nicht der Fall zu sein. Es scheint nur einen Wert zu unterstützen, der dann an eine LIKE-Klausel übergeben wird (beispielsweise 'app' wird zu '%app%').

2
HVS

Ich verwende SQL Server Management Studio v17.1 und hat einen SQL-Injektionsfehler in der Filterkonstruktion, sodass Sie die Standardeinstellung tatsächlich umgehen können 

tbl.name like '%xxx%' 

und schreiben Sie Ihre eigene Abfrage (mit einigen Einschränkungen). Um beispielsweise Tabellen zu filtern, die mit "_Arch", "_hist", "_purge" enden, habe ich folgenden Filterwert verwendet

_Arch') and RIGHT(tbl.name, 5) != N'purge' and RIGHT(tbl.name, 4) != N'hist' and not(tbl.name like N'bbb

Sie können SQL Server Profiler verwenden, um die erstellte Abfrage anzuzeigen und bei Bedarf anzupassen. 

Es ist nicht sicher, ob derselbe Fehler in früheren Versionen von SQL Management Studio verfügbar ist oder wann er behoben wird. Ich bin jedoch mit dem Ergebnis zufrieden.

2

Die SQL-Injection-Methode funktioniert ab SSMS 2017 v17.8.1 (etwas) immer noch, obwohl sie Klammern um das Symbol % setzt, sodass diese wörtlich interpretiert werden.

Wenn Sie den Filter Name-> Enthält verwenden, zeigt der Profiler Folgendes an: ... AND dtb.name LIKE N'%MyDatabase1%')

Also, im Feld Name-> Enthält: MyDatabase1') OR (dtb.name LIKE 'MyDatabase2 sollte es für einfache Fälle tun.

0
krkc

Wie andere bereits gesagt haben, können Sie dies nicht in SQL Server Management Studio (bis einschließlich 2014) tun.

Die folgende Abfrage gibt Ihnen eine gefilterte Liste von Tabellen, wenn Sie alles benötigen:

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;
0
robyaw

Ihr Glück ist, ich habe dieses Kunststück gerade erobert, obwohl mein Erfolg gering ist, da Sie nach Schema filtern können, wodurch Sie mehr als eine Tabelle sehen können. Sie müssen jedoch den Filtertext jedes Mal eingeben, wenn Sie sie ändern möchten.

0
Uber_Geek