Объявление параметров

При объявлении параметров указывается следующая информация

· Имя.

· Тип данных.

· Значение по умолчанию.

· Направление (входная или выходная).

Если параметру не присвоено значение по умолчанию, то начальное значение должно быть присвоено при вызове процедуры. Если значение задано по умолчанию, то у пользователя остается право его изменить

Пример 89

Задание.

Создать хранимую процедуру, которая выводит содержимое таблицы Student для заданной группы, по умолчанию выводятся сведения о студентах группы АИС-03.

Решение:

USE STUDENT

GO

CREATE PROC PStudent

@NameGroup VARCHAR (20)='АИС-03'

AS

SELECT NRecordBook [№ зачетки],

Sname [Имя],

NameGroup [Группа]

FROM Student ST

INNER JOIN SGroup SG

ON ST. IDGroup=SG. IDGroup

WHERE NameGroup=@NameGroup

При вызове EXEC PStudent ИСТ-02 имеем,

Пример 90

Задание.

Создать хранимую процедуру, которая выводит содержимое таблицы Student для заданной группы. Название группы, используемое по умолчанию, не задается

Решение:

USE STUDENT

GO

CREATE PROC PStudent

@NameGroup VARCHAR (20)

AS

SELECT NRecordBook [№ зачетки],

Sname [Имя],

NameGroup [Группа]

FROM Student ST

INNER JOIN SGroup SG

ON ST. IDGroup=SG. IDGroup

WHERE NameGroup=@NameGroup

При вызове процедуры с помощью оператора EXEC PStudent, будет выдано сообщение об ошибке.

Server: Msg 201, Level 16, State 4, Procedure PSTUDENT, Line 0

Procedure 'PSTUDENT' expects parameter '@NameGroup', which was not supplied.

При вызове EXEC PSTUDENT 'ИСТ-02' имеем,

Результат выполнения запроса:

Пример 91

Задание.

Создать хранимую процедуру, выводящую для просмотра содержимое таблицы Student.

Решение:

USE Student

GO

CREATE PROC PStudentView

AS

SELECT *

FROM STUDENT

Пример 92

Задание.

Создать хранимую процедуру, которая вводит данные в таблицу Student.

Решение:

USE Student

GO

create proc PStudentINSERT

@NRecordBook varchar(6),

@INN varchar(10),

@SName varchar(35),

@IDGroup Int,

@SPasport varchar(4),

@NPasport varchar(6),

@DataPasport DateTime,

@NameDeptPasport varchar(35)

AS

INSERT INTO Student

(NRecordBook,INN,SName,IDGroup,SPasport,NPasport,

DataPasport,NameDeptPasport)

VALUES

(@NRecordBook,@INN,@SName,@IDGroup,@SPasport,@NPasport,

@DataPasport,@NameDeptPasport)

Обратимся к вновь созданной процедуре:

EXEC PStudentINSERT

'050010',

'1111111110',

'Ипатов В.И.',

3,

'8701',

'192320',

'01.11.2002',

'ГОВД г.Ухты'

Увидеть результат вызова процедуры PStudentINSERT мы можем обратившись к ранее созданной процедуре PStudentView (см. Пример 91) EXEC PStudentView


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: