Friday, April 19, 2013

Модули MS SQL: представления, процедуры, функции


-- Модули:
-- Представление           VIEW
-- Процедура               Procedure
-- Функция                 Function
-- также есть не модуль, но …
-- Табличное выражение     WITH

-- Создать представление
--Drop view MyCatView
Create view MyCatView
AS
SELECT CategoryName, ProductName, UnitPrice
FROM Categories C INNER JOIN Products P
ON P.CategoryID=C.CategoryID
AND CategoryName='seafood'
Group BY CategoryName, ProductName, UnitPrice
GO ---
-- Обратиться к представлению
SELECT * from MyCatView
---
---Создать процедуру
--DROP PROCEDURE MyProc1
CREATE PROCEDURE MyProc1 @CAT int, @PROD int                                    
AS
SELECT CategoryName, ProductName, UnitPrice
FROM Categories C INNER JOIN Products P
ON P.CategoryID=C.CategoryID
-- AND CategoryName='seafood'
AND P.CategoryID > @CAT
AND P.UnitPrice > @PROD
Group BY CategoryName, ProductName, UnitPrice
GO ---

--Выполнить процедуру
EXECUTE MyProc1 5, 20

-- Создать функцию
--DROP FUNCTION MyFunc1
CREATE FUNCTION MyFunc1 (
                                  @CAT int
                                  , @PROD int                                   
                                  )
       RETURNS TABLE
AS
RETURN
SELECT CategoryName, ProductName, UnitPrice
FROM Categories C INNER JOIN Products P
ON P.CategoryID=C.CategoryID
-- AND CategoryName='seafood'
AND P.CategoryID > @CAT
AND P.UnitPrice > @PROD
Group BY CategoryName, ProductName, UnitPrice
GO ---

-- Вызвать функцию
SELECT *
FROM MyFunc1 (1,2)
WHERE UnitPrice>20

No comments: