понедельник, 18 марта 2013 г.

Как создать и вызвать хранимую процедуру


-- Как создать и вызвать хранимую процедуру
-- Простой пример

-- Создание хранимой процедуры, возвращающей товары с ценой от @MinPrice до @MaxPrice
-- @MinPrice и @MaxPrice - входные параметры


USE AdventureWorks2012
GO
CREATE PROC Sales.usp_getProducts
    @MinPrice MONEY, @MaxPrice MONEY
AS
    SELECT
        Name
        ,ListPrice
        ,Color
    FROM    AdventureWorks2012.Production.Product
    WHERE ListPrice BETWEEN @MinPrice AND @MaxPrice
GO

-- Вызов процедуры
-- параметры по порядку
EXECUTE Sales.usp_getProducts 1000, 2000

-- параметры по названию
EXECUTE Sales.usp_getProducts
    @MinPrice = 1500
    ,@MaxPrice = 2000
-- Порядок не имеет значения
EXECUTE Sales.usp_getProducts
    @MaxPrice = 2000
    ,@MinPrice = 1500

-- Сокращенно
EXEC Sales.usp_getProducts 1000, 2000
EXEC Sales.usp_getProducts
    @MinPrice = 1500
    ,@MaxPrice = 2000

-- Если вызов хранимой процедуры единственный в пакете
GO
    Sales.usp_getProducts 1500, 2000
GO