Dus als u SQL Server gebruikt, kunt u dit uitvoeren om alle kolommen in alle tabellen te vinden.
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
Door de uitvoer van deze query te gebruiken, maakt u een lijst van alle mogelijke combinaties van SELECTS voor elke kolom in elke tabel.
Dit geeft alleen de lijst met alle opdrachten weer, nu moet je ze uitvoeren. Om elke opdracht uit te voeren, moet je een cursor maken die over de hele lijst met resultaten gaat.
Je gaat de vorige SELECT
. omringen statement met een cursor om over elke query te gaan en deze uit te voeren. Dus de code wordt zoiets als dit
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