Ответ 1
Нет, представление состоит из одного оператора SELECT
. Вы не можете создавать или удалять таблицы в представлении.
Возможно, общее выражение таблицы (CTE) может решить вашу проблему. CTE являются временными наборами результатов, которые определены в пределах выполнения одного оператора, и их можно использовать в представлениях.
Пример (взятый из здесь) - вы можете думать о SalesBySalesPerson
CTE как временную таблицу:
CREATE VIEW vSalesStaffQuickStats
AS
WITH SalesBySalesPerson (SalesPersonID, NumberOfOrders, MostRecentOrderDate)
AS
(
SELECT SalesPersonID, COUNT(*), MAX(OrderDate)
FROM Sales.SalesOrderHeader
GROUP BY SalesPersonID
)
SELECT E.EmployeeID,
EmployeeOrders = OS.NumberOfOrders,
EmployeeLastOrderDate = OS.MostRecentOrderDate,
E.ManagerID,
ManagerOrders = OM.NumberOfOrders,
ManagerLastOrderDate = OM.MostRecentOrderDate
FROM HumanResources.Employee AS E
INNER JOIN SalesBySalesPerson AS OS ON E.EmployeeID = OS.SalesPersonID
LEFT JOIN SalesBySalesPerson AS OM ON E.ManagerID = OM.SalesPersonID
GO