Wenn Sie also SQL Server verwenden, können Sie dies ausführen, um alle Spalten in allen Tabellen zu finden.
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
Indem Sie die Ausgabe dieser Abfrage verwenden, erstellen Sie eine Liste aller möglichen Kombinationen von SELECTS für jede Spalte in jeder Tabelle.
Dies gibt nur die Liste aller Befehle aus, jetzt müssen Sie sie ausführen. Um jeden Befehl auszuführen, müssen Sie einen Cursor erstellen, der über die gesamte Ergebnisliste geht.
Sie werden das vorherige SELECT
umgeben -Anweisung mit einem Cursor, um über jede Abfrage zu gehen und sie auszuführen. Somit wird der Code in etwa so
DECLARE @myCommand VARCHAR(1000)
DECLARE c CURSOR READ_ONLY FAST_FORWARD FOR
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
OPEN c
FETCH NEXT FROM c INTO @myCommand
WHILE @@FETCH_STATUS = 0
BEGIN
sp_executesql @myCommand
FETCH NEXT FROM c INTO @myCommand
END
CLOSE c
DEALLOCATE c