Я думаю, вы спрашиваете, как получить табличный диск, представления которого являются частью запроса.Другими словами, если ваша таблица имеет следующие строки:
dbo.View1
dbo.View2
dbo.View3
Ваш запрос вернет объединение этих трех представлений;правильно?
Предостережение: я очень сомневаюсь в базовых реляционных структурах, которые требуют от вас этого.Лучшая модель данных, вероятно, сделает это ненужным.Но я предполагаю, что у вас нет возможности изменить модель, поэтому попробуйте следующее:
Предположим, что три перечисленных выше представления находятся в поле с именем "ViewName" в таблице с именем "ViewsToReturn".Создайте запрос, который сначала объединяет все представлений, а затем фильтрует его в соответствии с именами представлений в ViewsToReturn.Вот так:
SELECT * FROM
(SELECT Field1, Field2, 'dbo.View1' AS ViewName FROM dbo.View1
UNION
SELECT Field1, Field2, 'dbo.View2' AS ViewName FROM dbo.View2
UNION
SELECT Field1, Field2, 'dbo.View3' AS ViewName FROM dbo.View3
UNION
SELECT Field1, Field2, 'dbo.View4' AS ViewName FROM dbo.View4) AllRecords
WHERE AllRecords.TableName IN
SELECT ViewName FROM ViewsToReturn
Это решение не является ни элегантным, ни производительным, но должно помочь, если я правильно понимаю ваш вопрос.
Удачи!