Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 не работает триггер инсерт  [new]
alex212121
Member

Откуда:
Сообщений: 54
всем привет
создаю триггер, после инсерта в ТБ-ЮЗЕР ПРОИЗВОДИТСЯ ИНСЕРТ В ТОТАЛ.
всё вроде правильно раньше всё работало а сейчас пишет ошибку при запуске триггера

Msg 1046, Level 15, State 1, Procedure insert_insert_to_total, Line 18
Subqueries are not allowed in this context. Only scalar expressions are allowed.
Msg 102, Level 15, State 1, Procedure insert_insert_to_total, Line 18
Incorrect syntax near ','.


Сообщение 1046, уровень 15, состояние 1, процедура insert_insert_to_total, Строка 18
Подзапросы не допускается в данном контексте. Только скалярные выражения не допускаются.
Сообщение 102, уровень 15, состояние 1, процедура insert_insert_to_total, Строка 18
Неправильный синтаксис около ",".

прошу опишите на человеческом языке в чём проблема, что поменять

спасибо


CREATE TABLE TB_USER
(
nUserIdn int Primary Key IDENTITY(1,1) NOT NULL,
nDepartmentIdn int NOT NULL,
)


Create table Total
(
nUserIdn int,
nDepartmentIdn int,
closed int
)

create trigger insert_insert_to_total
on TB_USER after insert, update

as
begin

if (not(exists(select * from [INSERTED])))
return;

if
(not
(exists
(select * from TB_USER)
)
)
return;

insert into Total (nUserIdn, nDepartmentIdn, closed) values
((select nUserIdn from inserted), (select nDepartmentIdn from inserted), '0')

end
go
23 июл 12, 12:22    [12901657]     Ответить | Цитировать Сообщить модератору
 Re: не работает триггер инсерт  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
alex212121, сие
insert into Total (nUserIdn, nDepartmentIdn, closed) values 
((select nUserIdn from inserted), (select nDepartmentIdn from inserted), '0')


поменять на
insert into Total (nUserIdn, nDepartmentIdn, closed)
select nUserIdn,nDepartmentIdn, 0
from inserted

В inserted может быть не одна строка.
23 июл 12, 12:50    [12901897]     Ответить | Цитировать Сообщить модератору
 Re: не работает триггер инсерт  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
denis2710
В inserted может быть не одна строка.
Это автору сообщили уже месяц назад. Но он не реагирует.
23 июл 12, 12:51    [12901910]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить