Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не работает условная конструкция в триггере / 5 сообщений из 5, страница 1 из 1
20.08.2019, 12:22
    #39851525
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает условная конструкция в триггере
Подскажите пожалуйста в чем ошибка?
Почему то не выполняются инструкции "ELSE IF(@q) < 0"
Причем если первый блок IF закомментировать, то все работает.


Код: 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.
ALTER TRIGGER [dbo].[trMatcingStocksOnInsert]
ON [dbo].[order_details]
FOR INSERT 
AS
IF @@ROWCOUNT = 0
RETURN
SET NOCOUNT ON

DECLARE @g_id int ;
DECLARE @q int ;
SET @g_id = (SELECT 1 good_id FROM inserted)
SET @q = (SELECT 1 qty FROM inserted)
IF (@q)>0
BEGIN
UPDATE goods_stocks
SET stock = gs.stock - i.qty
FROM goods_stocks gs JOIN
(SELECT good_id, SUM(qty) qty FROM inserted GROUP BY good_id) i
ON gs.good_id = i.good_id
DELETE FROM goods_stocks
WHERE stock = 0;

END

ELSE IF(@q) < 0
BEGIN

INSERT  goods_stocks (good_id, stock, available) 
SELECT good_id,qty*-1,qty*-1
FROM inserted

END;
...
Рейтинг: 0 / 0
20.08.2019, 12:28
    #39851530
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает условная конструкция в триггере
null < 0 == false
...
Рейтинг: 0 / 0
20.08.2019, 13:00
    #39851556
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает условная конструкция в триггере
Разобрался
...
Рейтинг: 0 / 0
20.08.2019, 13:03
    #39851557
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает условная конструкция в триггере
Гавриленко Сергей Алексеевичnull < 0 == falseЕсли быть совсем точным, то unknown, но главное для if, что это не true.
...
Рейтинг: 0 / 0
22.08.2019, 23:03
    #39853031
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает условная конструкция в триггере
Данные с таблицы даже не читались. Там всегда 1 было.
Ну и конечно говнокод детектед. А что если в таблицу вставят больше чем одну строку за раз?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не работает условная конструкция в триггере / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]