テーブルが時間の経過とともに変化している場合は、SP でソリューションをインライン コード生成できます (疑似コード - 記入する必要があります)。
SET @sql = ''
DECLARE CURSOR FOR
SELECT t.[name] AS TABLE_NAME
FROM sys.tables t
WHERE t.[name] LIKE 'SOME_PATTERN_TO_IDENTIFY_THE_TABLES'
-- またはこれ
DECLARE CURSOR FOR
SELECT t.[name] AS TABLE_NAME
FROM TABLE_OF_TABLES_TO_SEACRH t
START LOOP
IF @sql <> '' SET @sql = @sql + 'UNION ALL '
SET @sql = 'SELECT * FROM [' + @TABLE_NAME + '] WHERE section_id=value '
END LOOP
EXEC(@sql)
私は、動的 SQL を使わずにこの手法を将来的に保証する明らかな方法がない場合に、この手法をときどき使用しました。
注: ループでは、COALESCE/NULL 伝播トリックを使用して、ループの前に文字列を NULL のままにしておくことができますが、イディオムに慣れていない場合は明確ではありません。
SET @sql = COALESCE(@sql + ' UNION ALL ', '')
+ 'SELECT * FROM [' + @TABLE_NAME + '] WHERE section_id=value '