Теория баз данных


         

Процедура возвращает новый номер читательского


N'IsProcedure') = 1)

drop procedure [dbo].[NEW_READER] GO

/* процедура проверки существования читателя с заданными значенияии вводимых параметров

Процедура возвращает новый номер читательского билета, если такого читателя не было сообщает старый номер и количество книг, которое должен читатель в противном случае */

CREATE PROCEDURE NEW_READER (@NAME_READER varchar(30) .(PADRES varchar(40).@HOOM_PHONE char(9).@WORK_PHONE char(9).

@BIRTH_DAY varchar(8). @NUM_READER int OUTPUT.

/* выходной параметр, определяющий номер читательского билета*/

@Y_N int OUTPUT,

/* выходной параметр, определяющий был ли читатель ранее записан в библиотеку*/

@COUNT_BOOKS int OUTPUT

/* выходной параметр, определяющий количество книг, которое числится за читателем*/)

AS

/* переменная, в которой будет храниться номер читательского билета, если читатель уже был записан в библиотеку */

DECLARE @N_R int

/* определение наличия читателя */

ЕХЕС @N_R = CK_READER'@NAME_READER.@BIRTH_DAY

IF @N_R= 0 Or @N_R Is Null

/* если читатель с заданными характеристиками не найден, т. е. переменной @N_R присвоено значение нуль или ее значение неопределено, перейдем к назначению для нового читателя нового номера читательского билета */

BEGIN

/* так как мы номер читательского билета определили как инкрементное поле, то в операторе ввода мы его не указываем система сама назначит новому читателю очередной номер */

INSERT INTO READER(NAME_READER,ADRES,HOOM_PHONE,WORK_PHONE,ВIRTH_DAY)

VALUES (@NAME_READER,(PADRES, @HOOM_PHONE.@WORK_PHONE,Convert(sma11dateti me, @BIRJH_DAY,4) )

/* в операторе INSERT мы должны преобразовать символьную переменную @BIRTH_DAY в тип данных smalldatetime, который определен для поля дата рождения BIRTH_DAY. Это преобразование мы сделаем с помощью встроенной функции Transact SQL Convert */

/* теперь определим назначенный номер читальского билета */

select @NUM_READER = NUM_READER FROM READER

WHERE NAME_READER = @NAME_READER AND

convert(varchar(8),BIRTH_DAY,4)=@BIRTH_DAY

Содержание  Назад  Вперед