sql-server – Microsoft SQL Server Management Studio – 具有
发布时间:2020-12-12 16:19:24 所属栏目:MsSql教程 来源:网络整理
导读:当锁等待超过60秒时,我们想要发出警报.以下警报脚本按预期执行. 但是我们希望有更多的信息,例如锁定的会话ID,锁定状态,登录名等. 有没有办法把这个包含在@notification_message中? USE [msdb]GOEXEC msdb.dbo.sp_update_alert @name=N'Total Lock Wait Time
当锁等待超过60秒时,我们想要发出警报.以下警报脚本按预期执行.
但是我们希望有更多的信息,例如锁定的会话ID,锁定状态,登录名等. 有没有办法把这个包含在@notification_message中? USE [msdb] GO EXEC msdb.dbo.sp_update_alert @name=N'Total Lock Wait Time (ms) > 60000',@message_id=0,@severity=0,@enabled=1,@delay_between_responses=0,@include_event_description_in=1,@database_name=N'',@notification_message=N'',@event_description_keyword=N'',@performance_condition=N'MSSQL$DB:Locks|Lock Wait Time (ms)|_Total|>|60000',@wmi_namespace=N'',@wmi_query=N'',@job_id=N'00000000-0000-0000-0000-000000000000' GO EXEC msdb.dbo.sp_update_notification @alert_name = N'Total Lock Wait Time (ms) > 60000',@operator_name = N'me',@notification_method = 1 GO 解决方法msdb.dbo.sp_update_alert系统存储过程更新msdb.dbo.sysalerts表中的记录. nvarchar(512)参数“@notification_message”存储在msdb.dbo.sysalerts.notification_message列中.触发警报时,将拉出该列的内容.我以前没有尝试过,但您可以尝试的一件事是创建一个SQL代理作业,修改msdb.dbo.sysalerts.notification_message中的值,并使用@job_id或@job_name参数将该作业附加到通知中.如果幸运的话,该工作将在通知发出之前执行,因此“动态”更改通知的文本.我期望的是更有可能的是,该作业将同时运行,只会在下次触发此警报时产生影响.但是,取决于你正在寻找什么,这可能是足够好的.有关更多信息,请访问您的MSDB数据库并运行sp_helptext sp_update_alert,您可以看到它在做什么. 另一个选项是使您的SQL代理作业使用sp_send_dbmail发送消息.然后,您可以自定义您想要的消息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |