Frage

In Management Studio können Sie einen Rechtsklick auf der Tabellen-Gruppe einen Filter für die Tabellenliste zu erstellen. Hat jemand dachte, einen Ausweg zu mehreren Tabellen im Filter enthalten? Zum Beispiel würde ich alle Tabellen mit „br_*“ mag und „tbl_*“ zu zeigen.

Wer weiß, wie dies zu tun?

War es hilfreich?

Lösung

könnten Sie in der Lage sein, eigene Add-on zu SMSS rollen, die Sie erlauben würde, zu tun, was Sie suchen:

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

Extend Funktionalität in SQL Server 2005 Management Studio mit Add-In

Die erste ist speziell für die Suche und alle Schemaobjekte mit einem bestimmten Namen angezeigt wird, so dass Sie auf, dass zu erweitern könnte der Lage sein, für das, was Sie suchen.

Andere Tipps

Nein , können Sie dies nicht tun. Als wir das erste Management Studio habe ich jede mögliche Kombination von alles versucht man sich denken kann: _, %, *, ", ', &&, &, and, or, |, ||, etc ...

Ich habe Toad for SQL Server (Freeware-Version) verwendet, die sehr schön Filteroptionen haben.

Ich bin mit SQL Server Management Studio v17.1 und es hat einen SQL-Injection-Fehler in es Filterkonstruktion ist, so dass man eigentlich Standard entweichen kann

tbl.name like '%xxx%' 

und Ihre eigene Abfrage (mit einigen Einschränkungen) schreiben. Zum Beispiel zum Filtern von Tabellen, die mit „_arch“, „_hist“, „_purge“ Früher habe ich folgenden Filterwert

enden
_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, um zu sehen und es nach Bedarf anpassen.

Nicht sicher, ob dies gleiche Fehler in früheren SQL Management Studio-Versionen verfügbar ist oder wenn es festgelegt werden, aber jetzt bin ich mit dem Ergebnis zufrieden.

Zuerst sieht es aus wie es eine CONTAINS Abfrage verwenden könnte (z "br_*" OR "tbl_*"), aber es scheint nicht zu. Es scheint nur einen Wert zu unterstützen, die dann in eine LIKE Klausel übergeben wird (z 'app' wird '%app%').

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

Die folgende Abfrage werden Ihnen eine gefilterte Liste von Tabellen, wenn das alles ist, was Sie brauchen:

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;

Die SQL-Injection-Methode funktioniert immer noch (etwas) ab SSMS 2017 v17.8.1, obwohl es Klammern um das % Symbol setzt, so ist es jene buchstäblich interpretiert.

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

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

.

Ihr Glück, ich habe gerade diese Leistung erobert, obwohl mein Erfolg klein ist, weil Sie nach Schema filtern können, die erlauben würden Sie mehr als 1 Tabelle sehen, aber Sie haben den Filtertext in jedes Mal, wenn Sie es ändern mögen eingeben.

Das ist alt ich weiß, aber es ist gut zu wissen, dass es funktioniert, wenn Sie Eingabe nur den „Filter“ Text eingeben. Weiter * oder % oder andere Standard-Suchzeichen, geben Sie einfach br_ oder tbl_ oder was auch immer Sie wollen, nach dem gefiltert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top