Основы языка TRANSACT SQL. Казакова И.А. - 126 стр.

UptoLike

Составители: 

125
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 выводится список сту-
дентов, получивших оценку « по дисциплине «Алгебра и гео-
метрия».
Пример 104. Процедура с входными и выходными пара-
метрами. Вывести число студентов у определенного куратора.
CREATE Procedure StudentsNum
@Num smallint OUTPUT,
@CuratorSn varchar(20),
@CuratorN varchar(20),
@CuratorP varchar(20)
AS
SELECT @Num = COUNT(*)
     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» по дисциплине «Алгебра и гео-
метрия».
     Пример 104. Процедура с входными и выходными пара-
метрами. Вывести число студентов у определенного куратора.
     CREATE Procedure StudentsNum
     @Num smallint OUTPUT,
     @CuratorSn varchar(20),
     @CuratorN varchar(20),
     @CuratorP varchar(20)
     AS
     SELECT @Num = COUNT(*)
                             125