|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
|
Создать триггер на 2 таблицы28.10.2011, 22:21. Показов 19859. Ответов 14
Метки нет (Все метки)
Здравствуйте!
Нужна помощь в составлении триггера или же процедуры (желательно триггера/ов) на 2 таблицы в базе данных. Есть таблица "Detzakaz" и таблица "Products" (Products - это, по-сути, склад). В "Detzakaz" оформляется количество (dz_kol) определенного товара из таблицы "Products". В "Products" есть количество данного товара, н-р, штук 30 (Pr_Kol=30). Так вот, нужен триггер/ы, который будет добавлять количество определенного товара из "Detzakaz" в "Products". В "Detzakaz" много товаров определенного вида, который есть в "Products". Может через цикл делать, чтобы для каждого товара прибавлялось количество в "Products"? Вот такая задача... Заранее благодарю за помощь.
0
|
|
| 28.10.2011, 22:21 | |
|
Ответы с готовыми решениями:
14
Триггер для добавления к строке название таблицы, в которой содержится триггер Создать триггер, который в созданной таблице STAT_PRODAVES модифицирует значения в столбцах таблицы |
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
|||||||||||
| 28.10.2011, 23:54 | |||||||||||
PID - в Detzakaz FK с ссылкой нв PK в Products Все изменения в любых количествах в таблице Detzakaz будут влиять на таблицу Products Добавлено через 36 минут Немножко не так, не учел update и delete по нескольким ключам! Вот так вот правильно :
2
|
|||||||||||
|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
|
| 29.10.2011, 00:40 [ТС] | |
|
Celly
Благодарю! Буду разбираться.
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
||||||||||||
| 30.10.2011, 23:53 [ТС] | ||||||||||||
|
Нужна еще помощь.
Есть у меня таблица Detzakaz и Zakaz. В таблице Detzakaz есть количество (dz_kol), цена за единицу (dz_cost_per_unit), и сумма за количество данного товара (dz_total_sum). Сумма подсчитывается произведением dz_total_sum=dz_kol*dz_cost_per_unit. А в Zakaz может быть несколько видов товара, и в этой таблице есть dz_itog_sum (Итоговая сумма заказа, высчитывается как @z_itog_sum = (select sum(dz_total_sum)). Вот так вот. Через процедуру у меня это получилось сделать. Но exec каждый раз делать - ругается MS SQL. Надо запись до процедуры вводить. После уже не хочет обновлять. Помогите через триггер это сделать. Код процедур:
Вроде, разобрался.
0
|
||||||||||||
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
|||||||||||
| 31.10.2011, 00:19 | |||||||||||
Так же как вариант можете сделать вычисляемый столбец... но только прийдётся удалить колонку detzakaz.dz_total_sum и добавить заново:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
|
| 31.10.2011, 14:53 [ТС] | |
|
Celly
Огромное Вам Благодарю! Буду разбираться. Добавлено через 14 часов 31 минуту Уважаемый Celly. Не могли бы Вы помочь еще в одном деле? Есть таблица Products, в ней есть поле (Pr_kol - это кол-во определенного товара). И есть таблица Detzayavka, в ней есть поле (dza_kol - кол-во отпускаемого товара). Нужен триггер, если в Products не хватает товара, выписываемого в Detzayavka - чтобы выдавало запись "Запись невозможна. На складе нет такого количества". Заранее благодарю. P.S. С теми триггерами разобрался. Работает как надо. Благодарю!
0
|
|
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
||||||
| 31.10.2011, 16:02 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
|
| 31.10.2011, 19:58 [ТС] | |
|
Celly, последний код не работает. Т.е., я не могу занести запись в Detzayavka - никакую. Вношу - пишет: "Строки обновлены". А в самой таблице нет данных. Я снова вношу те же записи - "Успешно обновлено", а данных нет..
0
|
|
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
||||||
| 31.10.2011, 20:03 | ||||||
|
Проверте количество Pr_kol в таблице Products и сравните с суммой dza_kol из таблицы Detzayavka!
значение pr_kol не должно быть меньше суммы dza_kol!!! Да... Забыл о самом главном ![]()
1
|
||||||
|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
|
| 08.11.2011, 23:46 [ТС] | |
|
Здравствуйте!
Разъясните пожалуйста. В своей БД я создал пользователей, роли и присвоил им права. Роль "администраторы" с 1-м пользователем. И роль "Менеджеры" - с 4-мя пользователями. У каждого человека в роли свой логин и пароль. Как проверить работоспособность прав, которые я задал? БД связываю с графическим приложением, в Visual Studio 2010. Как мне организовать вход по логину и паролю, определенного пользователя (как выше описал)? Заранее благодарю.
0
|
|
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
|
| 09.11.2011, 18:41 | |
|
Для проверки пройдите аутентификацию через management studio и попробуйте поманипулировать с таблицами на которые вы не давали пермишены.
Наризуйте форму где пользователь будет вводить пароль и логин своей учётной записи SQL и подставляйте введённые данные в строку подключения. И там уже в блоке try..catch проверяйте правильность введённых данных когда будет пытатся подключится к БД!
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
|
| 10.11.2011, 09:06 [ТС] | |
|
Через MS SQL management studio, я аутентификацию пройти не смог. Ошибку выдает.
Что я делаю не так?
0
|
|
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
|
| 10.11.2011, 17:50 | |
|
А у вас случайно не экспресс версия стоит? Если да, то неполучится у вас юзеров натыкать по идее... нужно ставить девелопер хотябы... Вам необходимо при установке будет указать подключение к серверу с SQL Server Authentification.
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 10
|
|
| 10.11.2011, 18:18 [ТС] | |
|
Enterprice версия стоит.
Впринципе, как в приложении юзернеймы и пароли реализовать я понял. Благодарю за помощь. P.S. Еще обращусь.
0
|
|
|
0 / 0 / 0
Регистрация: 01.07.2015
Сообщений: 10
|
|
| 20.03.2018, 09:06 | |
|
Здравствуйте! Спасибо за способ решения! Очень помогло! Вопрос по обновлению записи: у меня не обновляется запись, потому что код в таблице еще переносится в другую! А при обновлении он жалуется, что данные в связанной таблице не обновляются. По суте, код я не меняю, а жалуется. Я думаю, что нужно его обновить (или пересоздать заново запись с теми же параметрами), но как это сделать? И плюс к тому же, это ключевое поле (второй ключ). На картинке две таблицы, которые связаны по ключу "kid" и "nkid" и на это связь он жалуется. Подскажите пожалуйста!
Заранее благодарю за помощь!!!)))
0
|
|
| 20.03.2018, 09:06 | |
|
Помогаю со студенческими работами здесь
15
Как создать триггер который обновляет запись в таблицы при добавлении записи в другую таблицу Триггер для таблицы Триггер на удаление поля таблицы Триггер на апдейт определенных столбцов таблицы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|