Tak więc, jeśli używasz SQL Server, możesz uruchomić to, aby znaleźć wszystkie kolumny we wszystkich tabelach.
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
Korzystając z wyników tego zapytania, tworzysz listę wszystkich możliwych kombinacji WYBORÓW dla każdej kolumny w każdej tabeli.
To po prostu wyświetla listę wszystkich poleceń, teraz musisz je wykonać. Aby wykonać każde polecenie, musisz utworzyć kursor, który przejdzie przez całą listę wyników.
Zamierzasz otoczyć poprzedni SELECT
instrukcja z kursorem, aby przejść przez każde zapytanie i wykonać je. W ten sposób kod staje się mniej więcej taki
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