私は次の見解を持っています
create view V(CategoryId, ...)
as
select 1, .... from T1 union all
select 2, .... from T2 union all
select 3, .... from T3 union all
select 4, .... from T4 union all
select 5, .... from T5 union all
...
CategoryId
各テーブルには定数値があるため、下線付きのテーブルに列を追加Check(CategoryId = 1)
しませんでした。列が物理的に存在しないため、追加できません。
次のクエリは、すべてのテーブルをスキャンします。クエリのテーブルの 1 つだけを実行計画にスキャンさせる方法はありますか?
declare @id tinyint = (....);
select * from V where CategoryId = @id and ...