Создание представлений и хранимых процедур
После того как Мэри предоставлен доступ к базе данных TestData , можно создать некоторые объекты базы данных, такие как представление или хранимая процедура, а затем предоставить Мэри доступ к ним. Представление является хранимой инструкцией SELECT, а хранимая процедура представляет собой одну или более инструкций Transact-SQL, выполняемых в виде пакета.
Представления запрашиваются так же, как таблицы, и не принимают параметры. Хранимые процедуры сложнее, чем представления. Хранимые процедуры содержат как входные, так и выходные параметры и могут содержать инструкции, которые управляют потоком кода, например IF и WHILE. Использование хранимых процедур для всех повторяющихся действий в базе данных является хорошим стилем программирования.
В этом примере используется инструкция CREATE VIEW, чтобы создать представление, которое выбирает только два столбца в таблице Products . Затем с помощью инструкции CREATE PROCEDURE создается хранимая процедура, которая принимает цену в качестве параметра и возвращает только те продукты, цена которых меньше значения, указанного в качестве параметра.
Создание представления
Выполните следующую инструкцию, создающую очень простое представление, которое выполняет инструкцию select и возвращает названия и цены продуктов пользователю.
CREATE VIEW vw_Names AS SELECT ProductName, Price FROM Products; GO
Тестирование представления
С представлениями обращаются так же, как с таблицами. Используйте инструкцию
SELECT
, чтобы получить доступ к представлению.SELECT * FROM vw_Names; GO
Создание хранимой процедуры
В следующем примере создается хранимая процедура
pr_Names
с входным параметром@VarPrice
типаmoney
. Эта хранимая процедура печатает инструкциюProducts less than
, соединенную операцией сцепления с входным параметром, тип которого преобразуется изmoney
вvarchar(10)
. Затем процедура выполняет инструкциюSELECT
на представлении, передавая входной параметр в предложениеWHERE
. Возвращаются все продукты, цена которых меньше значения входного параметра.CREATE PROCEDURE pr_Names @VarPrice money AS BEGIN -- The print statement returns text to the user PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10)); -- A second statement starts here SELECT ProductName, Price FROM vw_Names WHERE Price < @varPrice; END GO
Тестирование хранимой процедуры
Чтобы выполнить хранимую процедуру, введите и выполните следующую инструкцию. Эта процедура должна возвратить названия двух продуктов, введенных в таблицу
Products
на занятии 1, цена которых меньше10.00
.EXECUTE pr_Names 10.00; GO
Следующая задача занятия
Предоставление доступа к объекту базы данных