Базы данных - модели, разработка, реализация


         

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


  • @BIRTH_DAY varchar(8),


  • @NUM_READER int OUTPUT,


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


  • @Y_N int OUTPUT.


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


  • в библиотеку*/


  • @COUNT_BOOKS int OUTPUT


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


  • за читателем*/)


  • AS


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


  • если читатель уже был записан в библиотеку */


  • DECLARE @N_R int


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


  • EXEC @N_R = CK_READER @NAME_READER,@BIRTH_DAY


  • IF @N_R= 0 Or @N_R Is Null


  • /* если читатель с заданными характеристиками не найден, т. е. переменной


  • @N_R присвоено значение нуль или ее значение неопределено, перейдем


  • к назначению для нового читателя нового номера читательского билета */


  • BEGIN


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


  • то в операторе ввода мы его не указываем система сама назначит новому


  • читателю очередной номер */


  • 267

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


  • VALUES (@NAME_READER.@ADRES.@HOOM_PHONE.@WORK_PHONE.Convert(smal1datetime,


  • @BIRTH_DAY.4) )


  • /* в операторе INSERT мы должны преобразовать символьную переменную @BIRTH_DAY


  • в тип данных sma11datetime, который определен для поля дата рождения


  • 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


  • /* здесь мы снова используем функцию преобразования типа, но в этом случае


  • нам необходимо преобразовать поле BIRTH_DAY из типа smalldatetime


  • к типу varchar(8), в котором задан входной параметр @BIRTH_DAY */


  • Select @Y_N =0


  • /* присваиваем выходному параметру @Y_N значение 0 (ноль), что


  • соответствует тому,что данный читатель ранее в нашей библиотеке


  • не был записан */


  • Select @COUNT_BOOKS = 0


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



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