2016-05-14 11 views
0

Ich versuche, Aufgaben im Admin-Tool meines ERP-Systems durchzuführen. Das Tool ist mit dem MS-Sql-Server verbunden, auf dem die ERP-Daten gespeichert sind. Jedes Mal, wenn ich eine Aktion auf einem Tisch über das ERP-System des Admin-Tool ausführen möchten, es läuft einForce information_schema.tables, um nach Tabellenname sortiert zurückzugeben?

SELECT * FROM INFORMATION_SCHEMA.TABLES 

und füllt eine scrollbare Liste mit allen Tabellen, die das ERP-System umfassen. Das Problem ist, diese Liste ist nicht sortiert und ich kann sie nicht auf der Client-Seite sortieren. Es gibt 3.700 (keine Übertreibung) Tabellen. Scrollen durch die ungeordnete Liste und die Suche nach 1 Tabelle dauert durchschnittlich 20-30 Minuten im Durchschnitt, je nachdem, wo die Tabelle in der Liste ist.

Hat jemand irgendwelche Vorschläge, wie ich entweder MS-Sql-Server zwingen kann, die Tabelle in sortierter Weise zurückzugeben oder die Tabelle alphabetisch neu zu erstellen?

Ich habe nicht die Möglichkeit, die Abfrage zu ändern, die von der Innenseite des proprietären Tool gesendet wird - am Ende des Tages, ist es nur SELECT * FROM INFORMATION_SCHEMA.TABLES So

senden wird, ist es eine Möglichkeit, dass ich die Kraft kann Ergebnis dieser Abfrage, um die Liste sortiert zurückzugeben? Kann ich eine Ansicht erstellen, die Vorrang hat? Auch hier kann die Abfrage nicht geändert werden.

+0

Nein, wenn Sie das Ergebnis bestellt haben, brauchen Sie eine 'Reihenfolge von' auf den Ergebnissen. Ist Ihr Admin Tool Browser basiert? Wenn dies der Fall ist, können Sie ein Browser-Addon verwenden, um der Tabelle eine Sortierung und Filterung hinzuzufügen, z. B. https://addons.mozilla.org/en-GB/firefox/addon/tabletools2/ –

+0

Nein, es ist nicht browserbasiert. Ich wünsche. Denkst du, dass es möglich ist, diese Info-Tabelle in der Reihenfolge neu zu erstellen? (Ich weiß, dass es wahrscheinlich nicht ratsam ist, mit diesem Tisch zu spielen, aber ich bin verzweifelt. Letzte Nacht musste ich 9 Tische jagen und nach zwei Stunden hatte ich nur noch 5 von 9) – pianobry

+0

Nein, das ist sowieso kein Tisch und es verbindet mehrere Basistabellen. Sie erhalten sie nur in der Reihenfolge, in der der Ausführungsplan führt. –

Antwort

1

Vom SQL Server Books Online:

Die Reihenfolge, in der die Zeilen in einer Ergebnismenge zurückgegeben werden, sind nicht garantiert, es sei denn eine ORDER BY-Klausel angegeben ist.

Wahrscheinlich nicht die Antwort, die Sie hören möchten, aber dies ist die Art, wie alle ANSI SQL-kompatiblen DBMS-Systeme arbeiten. Eine Tabelle sowie Sichten sind ungeordnete Sätze von Zeilen, so dass äußerste Abfragen ORDER BY für die deterministische Sortierung von Ergebnismengen angeben müssen.