同じ構造の複数のテーブルと関連する名前を持つデータベース(SQLServer)にクエリを実行しようとしています。
[TABLE 01 $TRANSACTIONS]
[TABLE 02 $TRANSACTIONS]
...
[TABLE (n) $TRANSACTIONS]
一度に1つのテーブルで目的のレコードを返すクエリがあり、複数のテーブルを手動で選択できます
SELECT {QUERY01} FROM [TABLE 01 $TRANSACTIONS]
UNION
SELECT {QUERY02} FROM [TABLE 02 $TRANSACTIONS]
...
SELECT {QUERY(n)} FROM [TABLE (n) $TRANSACTIONS]
必要なテーブル名を代用する一般的なクエリは約 200 行で、ROWNUMBER()/PARTITION BY 関数、関連するテーブルへの複数の結合、およびいくつかの順序付けが含まれます。
時間が経つにつれて、新しいテーブルが追加され、nが変更されます。
nの任意の値に対して、すべてのnテーブルからレコードの UNION を選択する方法を誰かが提案できますか?
注: nテーブルのリストは、sysobjects テーブルに対するクエリで簡単に取得できます。
SELECT Name FROM sysobjects
WHERE Type = 'U'
AND Name LIKE '%$TRANSACTIONS'
ORDER BY Name