Така че, ако използвате SQL Server, тогава можете да стартирате това, за да намерите всички колони във всички таблици.
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
Като използвате резултата от тази заявка, вие създавате списък с всички възможни комбинации от SELECTS за всяка колона във всяка таблица.
Това просто извежда списъка с всички команди, сега трябва да ги изпълните. За да изпълните всяка команда, трябва да създадете курсор, който ще премине през целия списък с резултати.
Ще заобиколите предишния SELECT
израз с курсор, за да преминете през всяка заявка и да я изпълните. Така кодът става нещо подобно
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