Så om du använder SQL Server kan du köra detta för att hitta alla kolumner i alla tabeller.
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
Genom att använda utdata från denna fråga skapar du en lista över alla möjliga kombinationer av SELECTS för varje kolumn i varje tabell.
Detta matar bara ut listan över alla kommandon, nu måste du köra dem. För att kunna utföra varje kommando måste du skapa en markör som går över hela listan med resultat.
Du kommer att omge den föregående SELECT
med en markör för att gå över varje fråga och köra den. Således blir koden ungefär så här
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