Курсовая работа: Разработка прикладного программного обеспечения деятельности предприятия в системе клиент-сервер
· они обрабатывают входные аргументы и возвращают вызывающей процедуре или пакету значения в виде выходных аргументов;
· они содержат программные инструкции, которые выполняют операции в базе данных, в том числе вызывающие другие процедуры;
· они возвращают значение состояния вызывающей процедуре или пакету, таким образом передавая сведения об успешном или неуспешном завершении (и причины последнего).
Хранимые процедуры можно выполнять с помощью инструкции Transact-SQL EXECUTE. Хранимые процедуры отличаются от функций тем, что они не возвращают значения на месте своих имен, и их нельзя непосредственно использовать в выражениях.
По сравнению с программами Transact-SQL, которые хранятся локально на клиентских компьютерах, хранимые процедуры SQL Server имеют следующие преимущества.
· Хранимые процедуры регистрируются на сервере.
· Хранимые процедуры могут иметь атрибуты безопасности (например, разрешения) и цепочки владения, кроме того, к ним можно прикреплять сертификаты. Пользователи могут обладать разрешениями на выполнение хранимых процедур вместо прямых разрешений для работы с объектами, на которые ссылаются эти процедуры.
· Хранимые процедуры позволяют сделать защиту приложений более надежной. Параметризованные хранимые процедуры могут защитить приложения от атак, осуществляемых путем инжекции кода SQL.
· Хранимые процедуры поддерживают модульное программирование. Процедуру можно создать один раз и потом по мере необходимости вызывать ее в программе любое число раз. Это делает обслуживание приложения более удобным и позволяет унифицировать доступ приложений к базе данных.
· Хранимые процедуры представляют собой именованный код, дающий возможность отсроченного связывания. Это обеспечивает уровень косвенности, упрощающий развитие программного кода.
· Хранимые процедуры позволяют уменьшить сетевой трафик. Операцию, занимающую сотни строк программного кода Transact-SQL, можно выполнить в одной инструкции, которая обрабатывает процедуру, а не отправляет этот код по сети.
Для создания хранимой процедуры находим нужную нам базу данных, раскрываем ее, щелкаем правой кнопкой на вкладку «Programmability»,там находим вкладку «Stored Procedures» и нажимаем «New Stored Procedure»:
Для Выполнения процедуры необходимо найти ее во вкладке «Stored Procedures» , нажать ПКМ и выбрать «Execute Stored Procedure»
Примеры хранимых процедур:
1) set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--Запрос для вывода списка пациентов проживающих в определенном районе
ALTER PROCEDURE [dbo].[DistrPacient]
AS
BEGIN
SELECT tblDistrict.District, tblPacient.PacientSurname, tblPacient.PacientName
FROM tblDistrict INNER JOIN
tblPacient ON tblDistrict.DistrictID = tblPacient.DistrictID
WHERE tblDistrict.DistrictID = tblPacient.DistrictID
END
2) set ANSI_NULLS ON