Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 19

Написать триггер для учета количества книг

19.02.2016, 14:16. Показов 6310. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помощи с задачкой
Есть таблица с базой книг, с полями: Название и количество на складе,
и есть вторая таблица Продаж, задача состоит в том, что когда мы заполняем таблицу продаж, вводим ID книги, то с первой таблицы(склад) в поле - кол-во должно вычесть единицу, .т.е на складе было 3 книги Анна Каренина, мы одну купили, стало 2...и если на складе нету подходящей книги, то данные в таблицу Sale не заносятся

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
create table Books(
ID int IDENTITY(0,1) PRIMARY KEY,
Name nvarchar(100) NOT NULL,
nCount int NOT NULL,
 
CONSTRAINT check_nCount CHECK (nCount >= 0))
 
 
INSERT into Books(Name, nCount) values
('Отцы и дети', 3),
('Война и мир', 2),
('Анна Каренина', 4)
 
create table Sale(
ID int IDENTITY(0,1) PRIMARY KEY,
idBook int NOT NULL,
 
CONSTRAINT FK_idBook FOREIGN KEY (idBook) REFERENCES Books (ID))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2016, 14:16
Ответы с готовыми решениями:

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это предприятие с именем таблицы База практик в...

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это предприятие с именем таблицы База практик в...

Написать триггер для автоматического обновления поля при обновлении, удалении, добавлении записей в таблице
Добавить в таблицу «Продавцы» поле «Суммарный вес продаж» и написать триггер для автоматического обновления этого поля при обновлении,...

27
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
23.02.2016, 16:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Hikari Посмотреть сообщение
Ты все таки не Свема.
Правильно будет "Свема".
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
23.02.2016, 16:40
Цитата Сообщение от iap Посмотреть сообщение
Мне кажется, для данной задачи стоит рассмотреть реализацию в виде индексированного представления.
Не всегда применимо.
Нельзя реализовать контроль недопустимости отрицательных остатков.
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 17:00
Цитата Сообщение от pincet Посмотреть сообщение
а это что?
А это ответ на вопрос нужно выполнить описанную выше задачку но никак не пропаганда черти-чего.
Я выше писала, что так делать не стоит, но раз автор темы настаивает то даю более менее приближенный ответ именно на постановку ТЗ.
Цитата Сообщение от pincet Посмотреть сообщение
Правильно будет "Свема".
Всмысле с ковычками? Ну хорошо. пусть так.
Цитата Сообщение от invm Посмотреть сообщение
1. Как вы обеспечите достоверность полученных значений?
Наличием проведенных накладных.
Цитата Сообщение от invm Посмотреть сообщение
2. Как предотвратить получение одного и того же значения остатка параллельными сеансами, с последующей некорректной проверкой допустимости списаний?
А это разве решается хранением остатков аз есьм?
Причем тут фиксация транзакций к способу обработки данных складов?
Цитата Сообщение от invm Посмотреть сообщение
И что? Как это влияет на безапеляционность вашего предложения не хранить остатки?
Никак... Забудь...
Цитата Сообщение от invm Посмотреть сообщение
Если ваша БД открыта для прямых модификаций без всякого контроля, - не помогут ни транзакции, ни что-либо еще.
Все с тобой ясно. Проехали. Просто забудь - ты меня победил без остатка.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
23.02.2016, 17:09
Цитата Сообщение от Hikari Посмотреть сообщение
Всмысле с ковычками? Ну хорошо. пусть так.

Не по теме:


Тест на "Школота" не пройден.

0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
23.02.2016, 17:43
Цитата Сообщение от Hikari Посмотреть сообщение
Наличием проведенных накладных.
Да ну? Вы вообще в курсе, что на некоторых уровнях изоляции пока работает агрегирующий запрос, данные в строках, которые уже были им просканированы могут быть изменены параллельными транзакциями? Или что могут быть добавлены новые строки данных, которые уже не будут учтены в агрегате?
Цитата Сообщение от Hikari Посмотреть сообщение
А это разве решается хранением остатков аз есьм?
При хранением остатков это решать не нужно.
Если грубо, то достаточно иметь ограничение на Остаток >= 0, плюс триггер на таблицу движений, который этот остаток изменяет должным образом.
Цитата Сообщение от Hikari Посмотреть сообщение
Все с тобой ясно. Проехали. Просто забудь - ты меня победил без остатка.
Не надо вставать в позу.
Если не понимаете задаваемых вопросов, - это не значит, что их задает идиот. Это так же может означать, что у вас просто не хватает знаний, чтобы их понять.
Не думаю, что совсем не найдется желающих объяснить непонятные вам моменты, если вы об этом попросите.
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 19:45
Цитата Сообщение от pincet Посмотреть сообщение
Тест на "Школота" не пройден.
Ну все все )
Успокойся, ты прав
Сегодня в такой день я никак не могу идти на компромисы с мужчинами.
Цитата Сообщение от invm Посмотреть сообщение
Вы вообще в курсе, что на некоторых уровнях изоляции пока работает агрегирующий запрос, данные в строках, которые уже были им просканированы могут быть изменены параллельными транзакциями? Или что могут быть добавлены новые строки данных, которые уже не будут учтены в агрегате?
Ты совсем не о том говоришь
Все, проехали. Ты победитель.
Цитата Сообщение от invm Посмотреть сообщение
Если грубо, то достаточно иметь ограничение на Остаток >= 0, плюс триггер на таблицу движений, который этот остаток изменяет должным образом.
Ох... какое серьезное заблуждение... В реальной жизни такая схема увы не работает.
Попробуй перевести этот алгоритм на бумагу, и увидишь, что тебе потом скажут кладовщики. Знаем. Плавали.
Цитата Сообщение от invm Посмотреть сообщение
Это так же может означать, что у вас просто не хватает знаний, чтобы их понять.
Все все. Успокойся
На хватает - так не хватает. Не переживай ты так из-за меня.
Цитата Сообщение от invm Посмотреть сообщение
если вы об этом попросите.
но комментс...
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
23.02.2016, 20:00
Цитата Сообщение от Hikari Посмотреть сообщение
Ты совсем не о том говоришь
Само собой, ведь вы так и не поняли о чем речь.
Цитата Сообщение от Hikari Посмотреть сообщение
Ох... какое серьезное заблуждение... В реальной жизни такая схема увы не работает.
Да ну? Если это не работает в вашей реальной жизни с вашими кладовщиками, то это не значит, что все использующие такую схему идиоты. Не судите о том, в чем плохо разбираетесь.
Цитата Сообщение от Hikari Посмотреть сообщение
Не переживай ты так из-за меня.
Лично мне вы вообще фиолетовы Оставайтесь и дальше неучем и продолжайте насиловать сервер кучей агрегирующих запросов.
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 21:30
Цитата Сообщение от invm Посмотреть сообщение
Оставайтесь и дальше неучем и продолжайте насиловать сервер кучей агрегирующих запросов.
Да делай ты что хочешь, чего ты ко мне прицепился?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2016, 21:30
Помогаю со студенческими работами здесь

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

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

Программа учета книг
Написать программу, выполняющую следующие действия со структурой и файлами: Программа учета книг, считывать информацию из файла,...

Программа учета книг
Добрый день. Нужна программа, в которой можно вести учет прочитанных книг, книг в планах и книг в процессе. Чтобы по определенному...

Задача с очередью. Составить программу для ведения очереди и учета количества компьютеров в филиалах
Имеется следующая задача: Поставщик направляет товар Заказчику. Заказчик имеет сеть филиалов. Поступающий товар распределяется по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru