Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2017-12-21 | 195 |
5.00
из
|
Заказать работу |
|
|
Для выполнения хранимой процедуры используется команда:
EXEC [ UTE]имя_процедуры [;номер][[@имя_параметра=]{значение | @имя_переменной} [OUTPUT ]|[DEFAULT ]][,...n]Если вызов хранимой процедуры не является единственной командой в пакете, то присутствие команды EXECUTE обязательно. Более того, эта команда требуется для вызова процедуры из тела другой процедуры или триггера.
Использование ключевого слова OUTPUT при вызове процедуры разрешается только для параметров, которые были объявлены при создании процедуры с ключевым словом OUTPUT.
Если при вызове процедуры для параметра указывается ключевое слово DEFAULT, то будет использовано значение по умолчанию. Естественно, указанное слово DEFAULT разрешается только для тех параметров, для которых определено значение по умолчанию.
Из синтаксиса команды EXECUTE видно, что имена параметров могут быть опущены при вызове процедуры. Однако в этом случае пользователь должен указывать значения для параметров в том же порядке, в каком они перечислялись при создании процедуры. Присвоить параметрузначение по умолчанию, просто пропустив его при перечислении, нельзя. Если же требуется опустить параметры, для которых определено значение по умолчанию, достаточно явного указания имен параметров при вызове хранимой процедуры. Более того, таким способом можно перечислять параметры и их значения в произвольном порядке.
При вызове процедуры указываются либо имена параметров со значениями, либо только значения без имени параметра. Их комбинирование не допускается.
Пример 1. Процедура без параметров. Создать процедуру для уменьшения размера стипендии на 10 %:
CREATE Procedure Reduce
AS
UPDATE Students SET Stipendiya = Stipendiya * 0.9
|
WHERE Stipendiya IS NOT NULL;
Для обращения к процедуре можно использовать команду:
EXECUTE Reduce;
Пример 2. Процедура с входными параметрами. Создать процедуру для выдачи списка студентов, получивших определенную оценку по определенному экзамену:
CREATE Procedure Subject
@Subject varchar(50), @Mark tinyint
AS
SELECT s.FIO AS 'ФИО', l.Nazvanie AS 'Дисциплина', p.Examen AS 'Оценка за экзамен'
FROM Students AS s
INNER JOIN
Progress AS p ON p.ID_Student = s.ID_Student
INNER JOIN
Lessons AS l ON l.ID_Lesson = p.ID_Lesson
WHERE l.Nazvanie = @Subject AND p.Examen = @Mark;
Для обращения к процедуре можно использовать команду:
EXEC Subject 'Объектно-ориентированное программирование', 5;
Пример 3. Процедура с входными параметрами и значениями по умолчанию. Создать процедуру для выдачи списка студентов, получивших определенную оценку по определенному экзамену. По умолчанию вывести фамилии студентов, получивших оценку «3» по дисциплине «Алгебра и геометрия»:
CREATE Procedure ExamResultsDef
@Subject varchar(50)= VARYING‘Алгебра и геометрия’,
@Mark tinyint = 3
AS
SELECT s.FIO AS 'ФИО', l.Nazvanie AS 'Дисциплина', p.Examen AS 'Оценка за экзамен'
FROM Students AS s INNER JOIN
Progress AS p ON p.ID_Student = s.ID_Student INNER JOIN
Lessons AS l ON l.ID_Lesson = p.ID_Lesson
WHERE (@Subject IS NOT NULL AND l.Nazvanie = @Subject AND p.Examen = @Mark) OR
(@Subject IS NULL AND p.Examen = @Mark);
Для обращения к процедуре можно использовать команды:
1. EXEC ExamResultsDef – в этом случае выводятся значения по умолчанию, т.е. заданные в процедуре, – оценка «3» и дисциплина «Алгебра и геометрия».
2. EXEC ExamResultsDef @Subject = 'Объектно-ориентированное программирование', @Mark =5 – в этом случае выводится список студентов, получивших оценку «5» по дисциплине «Объектно-ориентированное программирование».
3. EXEC ExamResultsDef @Subject = 'Объектно-ориентированное программирование' – выводится список студентов, получивших оценку «3» по дисциплине «Объектно-ориентированное программирование».
4. EXEC ExamResultsDef @Mark = 5 выводится список студентов, получивших оценку «5» по дисциплине «Алгебра и геометрия».
Пример 4. Использование вложенных процедур. Создать процедуру для определения куратора группы, в которой учится определенный студент.
|
Сначала разработаем процедуру для определения групп и их кураторов:
CREATE PROCEDURE Curator
@Grp VARCHAR(10),
@Srn VARCHAR(20) OUTPUT
AS
SELECT @Srn = Familia
FROM Teachers
INNER JOIN Groups ON Groups.Kurator = Teachers.ID_Teacher
WHERE Groups.Name_group = @Grp;
Затем создадим процедуру, определяющую студентов и их кураторов:
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!