The profile name should be already created.
The Procedure that sends the mail is msdb.dbo.sp_send_dbmail
ALTER TRIGGER [MailOnError] ON [dbo].[LogMessages] AFTER INSERT AS DECLARE @LoggerId INT DECLARE @TableName VARCHAR(75) DECLARE @TableNameId INT DECLARE @MessageId INT DECLARE @MessageText VARCHAR(1000) DECLARE @LoggedTime DATETIME DECLARE @Body VARCHAR(1100) BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here SELECT @LoggerId = LoggerId , @TableName = TableName , @TableNameId = TableNameId, @MessageId = MessageId , @MessageText = MessageText, @LoggedTime = LoggedTime FROM LogError IF @MessageId = 3 BEGIN SET @Body = 'LoggerId = ' + CAST( @LoggerId AS VARCHAR ) + ', ' + 'TableName = '+ @TableName + ', ' + 'TableNameId = ' + CAST( @TableNameId AS VARCHAR ) + ', ' + 'MessageId = ' + CAST( @MessageId AS VARCHAR ) + ', ' + 'MessageText = ' + @MessageText + ', ' + 'LoggedTime = '+ CAST( @LoggedTime AS VARCHAR ) EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DBOException' , @recipients = 'babukumarasamy@gmail.com' , @subject = 'Exception occured!' , @body = @Body, @importance = 'High', @body_format = 'HTML', @sensitivity = 'Confidential' END END
Read the book
Pro SQL Server 2012 Administration By Ken Simmons, Sylvester Carstarphen
Page#: 326
No comments:
Post a Comment