воскресенье, 17 марта 2013 г.

Как создать подставляемую табличную функцию (Inline Table-Valued Functions)

-- Функция возвращает список строк детализации заказа по номеру заказа

USE AdventureWorks2012
GO

-- Удаление функции, если она есть

IF OBJECT_ID (N'Sales.fn_OrderLines') IS NOT NULL
DROP FUNCTION Sales.fn_OrderLines
GO

-- Создание функции

CREATE FUNCTION Sales.fn_OrderLines(@OrderID int)
RETURNS TABLE
AS RETURN
(
    SELECT *
    FROM Sales.SalesOrderDetail
    WHERE SalesOrderID = @OrderID
)
GO

-- Вызов функции

SELECT *
FROM AdventureWorks2012.Sales.fn_OrderLines(43659)