0
複数の同じ列を選択し、異なるデータベースから複数のコマンドを実行しようとしていますが、その列を変数として一度リストし、SELECT 。宣言された列のテーブルに基づくSELECT
それは現在が、はるかに少ない列&のSELECTで行われる方法:私は作業を取得するために望んでいるものの
SELECT Column1
,Column2
,Column3
FROM [db1]
--Processes
SELECT Column1
,Column2
,Column3
FROM [db2]
--Processes
SELECT Column1
,Column2
,Column3
FROM [db3]
--Processes
アイデア:
DECLARE @ListofColumns VARCHAR;
SET @ListofColumns = 'Column1,Column2,Column3';
SELECT @ListofColumns
FROM [db1]
--Processes
SELECT @ListofColumns
FROM [db2]
--Processes
SELECT @ListofColumns
FROM [db3]
--Processes
これを実行するには、動的SQLを使用する必要があります。コードを複雑にする。 –
動的SQL(EXEC/sp_executeSQL)はこれを実行する唯一の方法です。オブジェクト識別子を変数に格納することはできません。 –
これは、それぞれのクエリの構造が同じであれば、(文書化されていない) 'sp_MSforeachdb'と' sp_MSforeachtable'ストアドプロシージャを使用して、重要なデータベースとテーブルを対象にする適切なフィルタを使用する場合があります。しかし、このような場合、最初に同じタイプのデータが複数の場所に格納されている理由について質問したいと思います。*データ*の一部が、代わりに*メタデータ*になりました(ここではデータベース名になります)。 –