в которой будет храниться количество
*/
AS
/*опишем переменную, в которой будет храниться количество оставшихся
не оприходованных экземпляров книги, т.е. таких, которым еще не заданы
инвентарные номера */
DECLARE @ТЕК int
/ *вводим данные о книге в таблицу BOOKS */
INSERT INTO BOOKS VALUES(@ISBN.@TITL.@AUTOR.@COAUTOR.@YEARIZD.@PAGES)
/* назначение значения текущего счетчика оставшихся к вводу экземпляров*/
SELECT @TEK = @NUM_EXEMPL
/* организуем цикл для ввода новых экземпляров данной книги */
WHILE @TEK>0 /* пока количество оставшихся экземпляров больше нуля */
BEGIN
/* так как для инвентарного номера экземпляра книги мы задали свойство
IDENTITY, то нам не надо вводить инвентарный номер. СУБД сама автоматически
вычислит его, добавив единицу к предыдущему, введет при выполнении оператора
ввода INSERT.
Поле, определяющее присутствие экземпляра в библиотеке (EXIST) - логическое
поле, мы введем туда значение TRUE,которое соответствует присутствию
экземпляра книги в библиотеке.
Даты взятия и возврата мы можем не заполнять, тогда по умолчанию СУБД
подставит туда значение, соответствующее 1 января 1900 года, если мы не хотим
хранить такие бессмысленные данные, то можем ввести для обоих полей дата
время, значения текущей даты. */
264
Insert Into EXEMPLAR (ISBN.DATA_IN,DATA_OUT,EXIST)
VALUES (@ISBN.GetDate().GetDate()).TRUE)
/* изменение текущего значения счетчика количества оставшихся экземпляров */
SELECT @ТЕК = @ТЕК - 1
End /* конец цикла ввода данных о экземпляре книги*/
GO
Если мы не использовали инкрементное поле в качестве инвентарного номера экземпляра, то мы могли бы сами назначать инвентарный номер, увеличивая на единицу номер последнего хранимого в библиотеке экземпляра книги. Можно было бы попробовать просто сосчитать количество существующих экземпляров в библиотеке, но мы могли удалить некоторые, и тогда номер нового экземпляра может быть уже использован, и мы не сможем ввести данные, система не позволит нам нарушить уникальность первичного ключа.
Текст процедуры в этом случае будет иметь вид:
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий