0 / 0 / 0
Регистрация: 09.05.2019
Сообщений: 110
1

Проблема с третим триггером

28.11.2019, 03:48. Показов 791. Ответов 7

Author24 — интернет-сервис помощи студентам
Что с триггером «Products_Sales»? Почему в результатах выводится "Товар «iPhone X» фирмы «Apple Inc.» на складе"? (Это случается после выполнения (F5) кода поверх триггера «Products_Sales»).
Нужно, чтобы просто выводился "Товар «Cybertruck» фирмы «Tesla» продан".

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
--------------------1
USE DB;
--------------------2
TRUNCATE TABLE Store
TRUNCATE TABLE Warehouse
DROP TRIGGER Products_Enter
DROP TRIGGER Products_Exit
DROP TRIGGER Products_Sales
------------------3.1 Создать магаз
CREATE TABLE Store
(
    ID                  INT             IDENTITY    PRIMARY KEY,
    Product_Name        NVARCHAR(30)    NOT NULL,
    Manufacturer        NVARCHAR(20)    NOT NULL,
    Price               MONEY           NOT NULL,
    Enter_Date          DATETIME        NOT NULL    DEFAULT GETDATE(),
    Product_ID          NVARCHAR(20)
);
----------------------3.2 Создать склад
CREATE TABLE Warehouse 
(
    ID                  INT             IDENTITY    PRIMARY KEY,
    Product_Name        NVARCHAR(30)    NOT NULL,
    Manufacturer        NVARCHAR(20)    NOT NULL,
    Price               MONEY           NOT NULL,
    Exit_Date           DATETIME        NOT NULL    DEFAULT GETDATE(),
    Product_ID          NVARCHAR(20)
);
-----------------------------4.1 Триггер-1
CREATE TRIGGER Products_Enter
ON Store
AFTER INSERT AS SELECT Product_ID, Message = 'Товар «' + Product_Name + '» фирмы «' + Manufacturer + '» в магазине'
FROM INSERTED
---------------------------------------------------------------------------------------------------------------------------4.2 Завести в магаз
INSERT INTO Store (Product_Name, Manufacturer, Price, Product_ID) VALUES ('iPhone X',   'Apple Inc.',   30399,  'p70178256')
INSERT INTO Store (Product_Name, Manufacturer, Price, Product_ID) VALUES ('iPhone 9',   'Apple Inc.',   18800,  'p70178257')
INSERT INTO Store (Product_Name, Manufacturer, Price, Product_ID) VALUES ('Cybertruck', 'Tesla',        957349, 'p70178258')
----------------------------5.1 Триггер-2
CREATE TRIGGER Products_Exit
ON Store
AFTER DELETE AS SELECT Product_ID, Message = 'Товар «' + Product_Name + '» фирмы «' + Manufacturer + '» на складе'
FROM Warehouse
---------------------------------------------------------------------5.2 Вывоз товара из магаза на склад
INSERT INTO Warehouse (Product_Name, Manufacturer, Price, Product_ID)
SELECT Product_Name, Manufacturer, Price, Product_ID FROM Store WHERE ID = 1
DELETE FROM Store WHERE Product_Name = 'iPhone X'
-----------------------------6.1 Триггер-3
CREATE TRIGGER Products_Sales
ON Store
AFTER DELETE AS SELECT Product_ID, Message = 'Товар «' + Product_Name + '» фирмы «' + Manufacturer + '» продан'
FROM DELETED
------------------------------6.2 Продать товар
DELETE FROM Store WHERE Product_Name = 'Cybertruck'
--
SELECT * FROM Store
SELECT * FROM Warehouse
Миниатюры
Проблема с третим триггером  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2019, 03:48
Ответы с готовыми решениями:

Проблема с триггером Запрос вернул больше одного значения
Доброго времени суток! Сделал триггер для свое базы данных Суть в чем При добавлении в...

Проблема с триггером
Я читал что триггер -это что то вроде пистолет производящий выстрел. Я с этим соласен. Но я...

Проблема с триггером
Триггер для таблицы flights FLIGHT_ID NUMBER DEPARTUREDATE DATE ARRIVALDATE DATE ...

Проблема с триггером
Может у кого будет время мне ответить, please. Есть таблица bb_basket, содержащая данные о...

7
5464 / 4381 / 1074
Регистрация: 29.08.2013
Сообщений: 27,473
Записей в блоге: 3
28.11.2019, 08:33 2
подскажи - зачем тут триггер?
у тебя есть процедура для продажи товара, ну так туда и дописывай свой код

Цитата Сообщение от PavelIks Посмотреть сообщение
------------------------------6.2 Продать товар
DELETE FROM Store WHERE Product_Name = 'Cybertruck'
Процедура продажи ни в коем случае не должна ничего удалять. Продажа это когда ты уменьшаешь количество (если оно больше 0). И все.

у тебя в базе таблица с номенклатурой
КодТовара Наименование

пришло в таблицу Движение
КодТовара Количество Цена

Когда товар приходит у тебя в колонке Количество +
Когда ты продаешь товар, то ставишь -

и не надо ничего удалять
0
0 / 0 / 0
Регистрация: 09.05.2019
Сообщений: 110
28.11.2019, 17:56  [ТС] 3
qwertehok, а как реализуются эти методы с уменьшением и прибавлением?
Кроме этих методов с DELETED и INSERTED мне никакие другие неизвестны...
0
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,843
28.11.2019, 20:11 4
Цитата Сообщение от PavelIks Посмотреть сообщение
qwertehok, а как реализуются эти методы с уменьшением и прибавлением?
Кроме этих методов с DELETED и INSERTED мне никакие другие неизвестны...
реализуется (в самом простом случае) таблицей движений. кто, что, когда и как
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,270
28.11.2019, 22:26 5
Зачем два триггера на DELETE на одной таблице - объясните?
0
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,843
28.11.2019, 22:29 6
Цитата Сообщение от iap Посмотреть сообщение
Зачем два триггера на DELETE на одной таблице - объясните?

зарадлидля и вовсе триггеры здесь
0
0 / 0 / 0
Регистрация: 09.05.2019
Сообщений: 110
28.11.2019, 23:02  [ТС] 7
iap, а есть альтернатива?
0
5464 / 4381 / 1074
Регистрация: 29.08.2013
Сообщений: 27,473
Записей в блоге: 3
29.11.2019, 08:59 8
Цитата Сообщение от PavelIks Посмотреть сообщение
а есть альтернатива?
альтернатива - утки

что тебе не понятно?

ЗЫ и может сначала начнем? что за предметная область? какая задача?
что за ужас ты нарисовал вместо БД?
0
29.11.2019, 08:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2019, 08:59
Помогаю со студенческими работами здесь

Реактивное движение и противоречие с третим законом Ньютона
Третий закон Ньютона предпологает, закон сохранения импульса. Действие закона можно...

Помгите с триггером
Всем привет, в общем есть таблица ID, Товар, Цена, Количество, нужно по клику на кнопке изменить...

Сложность с триггером
Добрый день, помогите реализовать следующее. Есть две таблицы. Нужно реализовать следующее: Чтобы...

Непонятка с триггером
Столкнулся с непонятной разницей в поведении между HEF4013 и CD4013. Вторая не работает в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru