Samstag, 28. Februar 2015

SSMS: Mit Suchen und Ersetzen Zeilenumbrüche einfügen

Oft wäre es nützlich, im SQL Editor von SQL Server Management Studio mit Suchen und Ersetzen auch Sonderzeichen wie "neue Zeile" einfügen zu können. Beispielsweise um vor jedem "CREATE" Statement noch ein "GO" einzufügen, denn nach "GO" muss immer eine neue Zeile beginnen.
Auf dem direkten Weg ist es nicht möglich Sonderzeichen einzugeben. Doch durch die Verwendung regulärer Ausdrücke eröffnen Sie sich diese und noch eine ganze Palette weiterer Möglichkeiten.

Reguläre Ausdrücke sind der Schlüssel


Die im Bild dargestellte Option "Use - Regular expressions" interpretiert die Zeichenfolgen in den Eingabefeldern "Find what" und "Replace with" unter Berücksichtigung der Regeln für reguläre Ausdrücke.

Mit regulären Ausdrücken wird das Suchen und Ersetzen erheblich leistungsfähiger
Weil in regulären Ausdrücken die Zeichenfolge "\n" die Bedeutung "neue Zeile" hat, fügt das im Bild dargestellte Beispiel vor jedem "CREATE" ein "GO" und eine neue Zeile ein.

Vor allem aber können Sie reguläre Ausdrücke bei der Suche von Mustern im Text verwenden, indem Sie diese im Eingabefeld "Find what:" eingeben. Gerade erst musste ich in einem sehr langen SQL Skript alle Funktionsaufrufe finden, denen kein Schemaname vorangestellt war. Da die Funktionsnamen alle mit "fn_" begannen, konnte ich die betreffenden Stellen im Text mit diesem Ausdruck in "Find what:" schnell finden:
[^.]fn_  Dieser reguläre Ausdruck liefert alle Stellen, wo vor fn_ kein Punkt steht. Ist diese Hürde erst einmal genommen, ist es ein Leichtes, mit Suchen und Ersetzten an diesen Stellen noch den Schemanamen hinzuzufügen. In meinem Fall dauerte das für ca. 400 Ersetzungen nur wenige Sekunden.

Eine vollständige Dokumentation regulärer Ausdrücke finden Sie zum Beispiel in der MSDN oder in diesem Wikipedia Artikel.

Noch ein Tipp: Gerade wenn das gesuchte Muster an sehr vielen Stellen im Text vorkommt, dann ist die Option "Find in Files" eine großartige Hilfe. Sie erreichen diese Funktion hier:

Find in Files erstellt eine Liste mit allen Stellen, wo der Suchausdruck gefunden wurde

Fazit: Der Texteditor im Management Studio bietet viele leistungsstarke Funktionen für das Suchen und Ersetzen in Texten. Man muss nur genau hinsehen um sie zu finden.