2014-12-15 1 views
0

Итак, у меня есть триггер, который предупреждает меня, когда кто-то вносит изменения в любую таблицу базы данных. Он работал, но внезапно он остановился ... база данных все еще может отправлять электронные письма (у меня есть больше триггеров все еще работает), и вставка в мою таблицу журналов работает, поэтому любая идея?SQL Server триггер не отправляет электронную почту

CREATE TRIGGER [_trALterTable] 
ON DATABASE 
FOR ALTER_TABLE, DROP_TABLE, CREATE_TABLE 
AS 
    DECLARE @_SUBJECT NVARCHAR(MAX); 
    SELECT @_SUBJECT = EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)') 


    exec msdb.dbo.sp_send_dbmail 
     @profile_name = 'Notifications', 
     @recipients = '[email protected]', 
     @subject = @_SUBJECT, 
     @body = 'Changes on DB'; 

    INSERT TriggerLog 
    SELECT @_SUBJECT, COALESCE(SUSER_SNAME(), USER_NAME()), GETDATE(), HOST_NAME() AS HostName; 



GO 
+0

Любые сообщения в журнале почтовых ящиков базы данных? Или журнал SQL Server? – DMason

+0

Nope :(Но я понял, что только изменения не отправляют электронные письма, а вставки в журнал происходят ... Я думаю, что переведу электронное письмо на другой триггер на этой вставке ... – Rafa

+0

хорошо ... это сработало. но я думаю, что это своего рода грязный способ решить проблему ... в любом случае, если у кого-то есть идея, сообщите мне. – Rafa

ответ

0

С вкладышами, где происходит независимо от того, по электронной почте отправляется или нет, я создал еще один триггер после вставки, который отправляет электронную почту, которая работала, но я думаю, что это не лучший способ решения этой проблемы, так , если у кого-то есть идея, пожалуйста, дайте мне знать.

0

Это может произойти, потому что у вас есть @subject и @body в обратном порядке в обращении к sp_send_dbmail. Следовательно, @subject может содержать в себе некоторые символы, которые не оценены, но это будет нормально для @body.

+0

На самом деле я попытался изменить это, потому что я думал, что запрос может быть слишком длинным для тема, но это не решило проблему. – Rafa

+0

@sdmon Итак, теперь, когда триггеры разделены, отправляется ли электронная почта для событий ALTER? Это звучит как да, но это явно не ясно. –

+0

Да, сейчас он работает, но я хотел бы знать, что происходит: S – Rafa