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

с указанием количества экземпляров данной



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

@ISBN varchar(12) шифр книги

@TITL varchar(255) название

@AUTOR varchar(30) автор

@COAUTOR varchar(30) соавтор

@YEARIZD Int год издания

@PAGES INT количество страниц

@NUM_EXEMPL INT количество экземпляров

*/

AS

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

DECLARE @TEK Int

/ *вводим данные о книге в таблицу BOOKS */

INSERT INTO BOOKS VALUES(@ISBN@TITL @AUTOR@COAUTOR.@YEARIZD.@PAGES)

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

SELECT @ТЕК = @NUM_EXEMPL

/* организуем цикл для ввода новых экземпляров данной книги */

WHILE @TEK>0 /* пока количество оставшихся экземпляров больше нуля */

BEGIN

/* так как для инвентарного номера экземпляра книги мы задали свойство IDENTITY, то нам не надо вводить инвентарный номер. СУБД сама автоматически вычислит его, добавив единицу к предыдущему, введет при выполнении оператора ввода INSERT.

Поле, определяющее присутствие экземпляра в библиотеке (EXIST) - логическое поле, мы введем туда значение TRUE.которое соответствует присутствию экземпляра книги в библиотеке.

Даты взятия и возврата мы можем не заполнять, тогда по умолчанию СУБД подставит туда значение, соответствующее 1 января 1900 года, если мы не хотим хранить такие бессмысленные данные, то можем ввести для обоих полей дата время, значения текущей даты. */

SELECT @INV = SELECT MAX( ID_EXEMPLAR) FROM EXEMPLAR

/* организуем цикл для ввода новых экземпляров данной книги */

WHILE @ТЕК>0 /* пока количество оставшихся экземпляров больше нуля */

BEGIN

insert into EXEMPLAR (ID_EXEMPLAR, ISBN.DATA_IN.DATA_OUT,EXIST)

VALUES (@INV,@ISBN.GETDATE(),GetDate(). TRUE)

/* изменение текущих значений счетчика и инвентарного номера */

SELECT @ТЕК = @ТЕК - 1

SELECT @INV = @INV + 1

End /* конец цикла ввода данных о экземпляре книги*/ GO

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