September 27, 2022, 22:35:41

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Suchen/Ersetzen über mehrere Tabellen in SQL Management Studio

Begonnen von FrankiLi, April 13, 2017, 10:26:03

⏪ vorheriges - nächstes ⏩

FrankiLi

Hallo zusammen,

ich möchte in einer SQL-Datenbank in sämtlichen Tabellen und Feldern einen Text "alterText" in einen Text "neuerText" ändern, quasi wie Suchen und Ersetzen (damit könnte ich das natürlich auch in Access mit den verknüpften Tabellen umsetzen, dauert aber bei SQL Azure ewig, deshalb suche ich eine elegante Lösung mit Direktzugriff auf den Server).

Danke für Tipps
Gruss
Frank


PhilS

Zitat von: FrankiLi am April 13, 2017, 10:26:03ich möchte in einer SQL-Datenbank in sämtlichen Tabellen und Feldern einen Text "alterText" in einen Text "neuerText" ändern [...]

Dieses Anliegen deutet auf ein grundsätzliches Problem in deinem Datenmodell hin. In einem sinnvoll gestaltetem Datenmodell kann das eigentlich nicht vorkommen, da ein solcher Text nur in einer einzigen Tabelle, in einer einzigen Spalte vorkommen darf. In allen anderen Tabellen sollte es nur eine Referenz auf den Schlüssel der ursprünglichen Tabelle geben.

Diese DB-Designregeln haben einen guten Grund, denn ein globales "Suchen&Ersetzen" ist aufwendig zu implementieren und hat keine gute Performance, wie du in Access bereits festgestellt hast. - Letzteres wird zwar durch ein Azure-Backend noch verstärkt, ist aber ein grundsätzliches Problem.

Lösungsansatz:
Du kannst eine Abfrage auf die INFORMATION_SCHEMA-Views ausführen und damit alle Tabellen/Spalten ermitteln (alle *char-Spalten?), die berücksichtigt werden müssen. Aus den Ergebnissen kannst du dir dynamische SQL-Statements aufbauen, die entsprechende Aktualisierungsabfragen auf die Tabellen ausführen.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor