したがって、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
プレ>このクエリの出力を使用して、すべてのテーブルの各列の SELECT のすべての可能な組み合わせのリストを作成します。
これはすべてのコマンドのリストを出力するだけなので、それらを実行する必要があります。各コマンドを実行するには、結果のリスト全体を移動するカーソルを作成する必要があります。
前の
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
プレ>