複数のデータベース間で単純なselectステートメントの結果を動的に結合するコードを正常に記述しました。各レコードを識別できるように、データベース名自体をフィールドとして含めたいと思います。それを達成するために以下のコードを変更する最良の方法は何ですか?
私の現在の結果は次のようになります
field2、field3、field4 b、c、d 2,3,4
(b、c、d)を含む行がどのデータベースから来ているのかわかりません。
そして、field1、field2、field3、field4 First_DatabaseName、b、c、d Second_DatabaseName、2,3,4が表示されていることを確認したいと思います。
上記では、(b、c、d)を含む行がFirst_Databaseからのものであることがわかりました。
DECLARE @sql varchar(max)
SELECT @sql = ISNULL(@sql + 'union all ',' ') + ' SELECT * FROM ' + name + '.dbo.CombinedProvider '
FROM sys.databases
WHERE name in ('First_DatabaseName', 'Second_DatabaseName')
EXEC (@sql)