Meine Firma verschiebt alle Berichtgenerierungstabellen auf einen anderen Server, und dazu müssen wir alle Instanzen finden, wo gespeicherte Prozeduren auf Live-Tabellen zugreifen und entfernen Sie diese Zugriffe und ersetzen Sie sie durch Zugriffe auf Snapshots. Es gibt ziemlich viele gespeicherte Prozeduren, die ich durchsehen muss, und meine Augen fangen an zu bluten und versuchen, durch jede Datei zu scrollen. Ich dachte, eine Regex wäre vielleicht am besten in jedem gespeicherten Proc nachzusehen. Gibt es vielleicht einen noch besseren Weg?In einem Stored Proc, nach Tabellennamen (vielleicht mit Regex?) Ausschließen von zwei Schemas
Ich bin auf der Suche nach allen Situationen, in denen ein FROM oder JOIN gefolgt von einer Tabelle, die nicht mit "Snapshot" oder "EDI" (zwei Schemas mit Berichten) beginnt. Ich bin mir sicher, dass jemand beim Unfall "FROM" getippt hat, also wäre die Groß-/Kleinschreibung nicht hilfreich. Ich versuche auch, \ s + zu machen, weil jemand versehentlich mehr als einen Zwischenraum dazwischen eingegeben hat.
Zum Beispiel auszuschließen suchen:
- VON Snapshot
- VON EDI
- JOIN Snapshot
- JOIN EDI
und die Groß- und Kleinschreibung Varianten
Ich habe das Tutorialgemacht, kommt aber immer noch kurz. Bisher habe ich:
[fFjJ] [RroO] [oOiI] [mmnn] \ s +^$
Irgendwelche Gedanken (Snap | Schnapp | SNAP | EDI | | edi Edi!)?
EDIT: Ich verwende die Regex in SSMS 2016 mit der Funktion Suchen und Ersetzen.
Aus Neugier, wie viele gespeicherte Procs sprechen wir? Ich würde denken, dass es einfacher wäre, einen Namen auf dem Tisch zu machen (und nicht nach "von" und "beitreten" zu suchen) und dann mit der kurzen Liste, einen Menschen durchgehen und die falschen Positives heraussuchen. – Becuzz
Wahrscheinlich 100 gespeicherte Procs. Ich möchte diese beiden Schemas ausschließen, da es Hunderte von möglichen Live-Tabellen gibt, auf die referenziert werden kann (alle im dbo-Schema, aber die Referenzen verwenden möglicherweise nicht das dbo-Qualifikationsmerkmal). Indem ich diese beiden Schemareferenzen ausschließe, bekomme ich die Daten, die ich leichter haben möchte. –