同じスキーマを持つテーブルを持つ複数のデータベースからデータを取得する必要があります。このために、データベースの 1 つで、このテーブルのシノニムを作成しました。データベースの数は、時間とともに増加します。したがって、データを取得する手順は柔軟にする必要があります。問題を解決するために、次のコード スニペットを作成しました。
WHILE @i < @count
BEGIN
SELECT @synonymName = [Name]
FROM Synonyms
WHERE [ID] = @i
SELECT @sql = 'SELECT TOP (1) *
FROM [dbo].[synonym' + @synonymName + '] as syn
WHERE [syn].[Id] = tr.[Id]
ORDER BY [syn].[System.ChangedDate] DESC'
INSERT INTO @tmp
SELECT col1, col2
FROM
(
SELECT * FROM TableThatHasRelatedDataFromAllTheSynonyms
WHERE [Date] > @dateFrom
) AS tr
OUTER APPLY (EXEC(@sql)) result
SET @i = @i + 1
END
また、ソリューションを簡素化する方法についてのアイデアにも感謝します。