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

Откуда: Msk
Сообщений: 581
Есть приложение и у меня есть доступ к БД этого приложения.
На таблицу вешаю триггер for insert.
В триггере указываю только код для отправки письма (отправка писем настроена)

EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQL agent mail',
	     @recipients = '1@test.ru',
	     @subject = 'тест',
	     @body = 'тест'


если добавляю запись в табличку через managment studio, письмо отправляется.
если добавляю запись через приложение, получаю ошибку от приложения.
Violation of PRIMARY KEY constraint 'PK_COM_RATES_CROSS3_SET'. Cannot insert duplicate key in object 'dbo.COM_RATES_CROSS3_SET'.


какую инструкцию можно добавить в триггер, чтобы письмо отправилось?
13 янв 15, 15:29    [17111465]     Ответить | Цитировать Сообщить модератору
 Re: не отправляется письмо из триггера  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewIvanovec
какую инструкцию можно добавить в триггер, чтобы письмо отправилось?

Триггер срабатывает _после_ добавления данных
Он не может сработать, если добавления данных не произошло из-за нарушения PRIMARY KEY constraint 'PK_COM_RATES_CROSS3_SET'. Cannot insert duplicate key in object 'dbo.COM_RATES_CROSS3_SET'
13 янв 15, 15:32    [17111475]     Ответить | Цитировать Сообщить модератору
 Re: не отправляется письмо из триггера  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 581
Glory
NewIvanovec
какую инструкцию можно добавить в триггер, чтобы письмо отправилось?

Триггер срабатывает _после_ добавления данных
Он не может сработать, если добавления данных не произошло из-за нарушения PRIMARY KEY constraint 'PK_COM_RATES_CROSS3_SET'. Cannot insert duplicate key in object 'dbo.COM_RATES_CROSS3_SET'


хорошо, если я убираю инструкцию по отправке письма, то остальной код триггера отрабатывает.
Это означает, что проблем нет ни в данных, ни в триггере.
Как только добавляю отправку письма, сразу получаю ошибку.

шансов отправить письмо из этого триггера получается нет?
т.е. нужно делать вставку в другую таблицу и там уже рисовать отправку письма?
13 янв 15, 15:41    [17111543]     Ответить | Цитировать Сообщить модератору
 Re: не отправляется письмо из триггера  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewIvanovec
хорошо, если я убираю инструкцию по отправке письма, то остальной код триггера отрабатывает.

Еще раз
Violation of PRIMARY KEY constraint 'PK_COM_RATES_CROSS3_SET' проверяется ДО запуска триггера.

NewIvanovec
т.е. нужно делать вставку в другую таблицу и там уже рисовать отправку письма?

Нужно приложение клиентское корректно писать
13 янв 15, 15:43    [17111561]     Ответить | Цитировать Сообщить модератору
 Re: не отправляется письмо из триггера  [new]
Crimean
Member

Откуда:
Сообщений: 13148
профайлер вам в руки, смотреть что происходит
13 янв 15, 15:49    [17111610]     Ответить | Цитировать Сообщить модератору
 Re: не отправляется письмо из триггера  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 581
[quot Glory]
NewIvanovec
хорошо, если я убираю инструкцию по отправке письма, то остальной код триггера отрабатывает.

Еще раз
Glory
Violation of PRIMARY KEY constraint 'PK_COM_RATES_CROSS3_SET' проверяется ДО запуска триггера.


заранее извиняюсь, но спрошу ещё раз :) почему без инструкции отправки письма остальная часть триггера работает и приложение работает.
а при добавлении в триггер отправки письма получаю ошибку:
Error Run - UbsDataAccess.WriteTransact: System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'PK_COM_RATES_CROSS3_SET'. Cannot insert duplicate key in object 'dbo.COM_RATES_CROSS3_SET'.
The statement has been terminated.
13 янв 15, 15:51    [17111634]     Ответить | Цитировать Сообщить модератору
 Re: не отправляется письмо из триггера  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewIvanovec
заранее извиняюсь, но спрошу ещё раз :) почему без инструкции отправки письма остальная часть триггера работает и приложение работает.

Потому что одни программисты умеют писать клиентские приложения и у них получается ManagamentStudio
А другие программисты - не умеют.
И вторые думают про первых, что те дескать знают "секретные команды сервера"
13 янв 15, 15:54    [17111664]     Ответить | Цитировать Сообщить модератору
 Re: не отправляется письмо из триггера  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
NewIvanovec,

Вам вот Crimean посоветовал точный способ узнать,что именно ваше приложение пихает на сервер
13 янв 15, 16:00    [17111729]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить