ФУНКЦИЯ ЗНАЧЕНИЯ ВНУТРЕННЕЙ ТАБЛИЦЫ
Определение встроенной табличной функции определяет только RETURNS TABLE, а не определение таблицы.Весь пакет запроса или код или запрос выбора внутри функции представляет собой один оператор RETURN
CREATE FUNCTION CustomerProductDetails (@CustomerID NCHAR(5))
RETURNS TABLE
AS
RETURN (
-- Select statement
)
GO
МНОГОФУНКЦИОНАЛЬНАЯ ТАБЛИЦА VALUED FUNCTION
Определение табличной функции с несколькими операторамиопределяет ВОЗВРАТЫ вместе с определением TABLE VARIABLE.Тело функции может состоять из нескольких операторов, и один из них будет заполнять этот TABLE VARIABLE.И область действия / срок службы этой переменной таблицы ограничен только этой функцией - вне этой функции она недоступна.
CREATE FUNCTION CustomerOrderDetails (@CustomerID NCHAR(5))
RETURNS @CustomerOrders TABLE (
CustomerID NCHAR(5)
,CompanyName NVARCHAR(40)
,OrderID INT
,OrderDate DATETIME
)
AS
BEGIN
INSERT INTO @CustomerOrders
SELECT C.CustomerID
,C.CompanyName
,O.OrderID
,O.OrderDate
FROM Customers C
INNER JOIN Orders O ON C.CustomerID = C.CustomerID
WHERE C.CustomerID = @CustomerID
RETURN
END
GO