2016-04-20 8 views
1

Ich habe einen SQL-Server mit vielen Datenbanken und die meisten von ihnen haben identische Struktur, aber es gibt ein paar, die nicht die gleichen sind.Führen Sie Abfrage über alle Datenbanken in einem Server

Ich möchte nach einem bestimmten Wert eines Attributs in einer der Tabellen suchen und diesen Wert zu etwas anderem ändern. Ich weiß, wie man das pro Datenbank tut, aber ich habe nie eine Abfrage über alle DBs in einem Server ausgeführt.

Im Wesentlichen, was ist der einfachste Weg, dies zu tun, ohne eine Reihe von Befehlen nacheinander in jeder Datenbank ausführen zu müssen? also zusammenfassend. : Edit: Was ich brauche Hilfe mit speziell ist die Befehle, um die Befehle für jede Datenbank zu iterieren, und eine Check-Anweisung, nur Befehle auszuführen, die ich nur brauche, wenn "tableA" existiert, während eine DB abfragt.

for every database in server 
assert 'tableA' exists 
    if exists 
    value 'johnny' in column 'fname' of 'tableA' 
     replace 'johnny' with 'sara' 
    else 
     do nothing 
+0

Ist das mysql oder sql server? Sie sind nicht dasselbe. –

+0

@Sean Lange Ich bin mir nicht sicher, aber ich greife auf die Datenbanken über phpmyadmin einer WHM-Installation zu, also denke ich, es wäre durch mysql? – Eagl3

+0

ja, das wäre mysql –

Antwort

0

Nach einigen langen Suche nach einer Antwort sehe ich, dass es keine einfache Möglichkeit, es zu tun ist. Wie Benutzer Martin in einem Kommentar erwähnte, ist die einzige Möglichkeit, die durch MySQL möglich ist, die Ausführung eines externen Skripts zur Automatisierung der Aufgaben.

Im Wesentlichen war mein Ansatz, ein PHP-Skript mit einem Array, das die Login-Informationen für jede Datenbank (dh DB-Name, Benutzer, PW) und dann durchlaufen das Array und Ausführen der SQL-Befehle mit einer Schleife für jede db zu erstellen .

Verwandte Themen