Quindi, se stai utilizzando SQL Server, puoi eseguirlo per trovare tutte le colonne in tutte le tabelle.
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
Utilizzando l'output di questa query crei un elenco di tutte le possibili combinazioni di SELECTS per ogni colonna in ogni tabella.
Questo restituisce solo l'elenco di tutti i comandi, ora devi eseguirli. Per eseguire ogni comando devi creare un cursore che andrà sull'intero elenco dei risultati.
Circonderai il precedente SELECT
istruzione con un cursore per scorrere ogni query ed eseguirla. Pertanto, il codice diventa qualcosa del genere
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