MSSQL通知(Notification Services)是基于Microsoft SQL Server的一种数据改变侦测(Data Change Detection)工具,用于检测关注对象的数据变化,并通过特定的协议将信息发送到客户端,以便客户端可以检测和做出相应的响应。
MSSQL通知可用于多种服务,例如将更新通知推送到客户端、装备之间的无线数据同步、工作流通知、离线更新等等。最多见的用处,是当数据变动时,向客户端发送更新通知,以实现服务器与客户端之间的交互。
MSSQL通知在实现这类类型的数据改变侦测的进程中,采取了一种名为”Pull Subscription”的拉取模型。这类模型以定阅服务和发布服务两个部份组成。定阅者配置它定阅的事件类型,然后从发布服务器获得事件通知。
MSSQL通知的另外一个特点是对定阅和发布服务器的灵活性,可让定阅者从多个发布者处获得事件通知,也能够针对区别定阅者,从区别的发布者处获得同一事件。
在MSSQL通知用户设计中,通常要定义一套定阅规则。每规则触及到定阅者、要定阅的类型、要发布的事件、要发布的信息等等。当数据库产生变化时,Notification Services会依照定阅规则处理定阅者定阅相关的事件,将变动信息发送到定阅者。
下面是一个简单的MSSQL通知实现代码:
ALTER TABLE [table1]
ADD [column1] NVARCHAR(MAX);
GO
CREATE PROCEDURE [NotificationProc]
@notification_id INT
AS
BEGIN
DECLARE @message NVARCHAR(max) = ‘Table1的column1的数据产生更新’;
EXEC msdb.dbo.sp_send_db_notification
@notification_id,
@message;
END;
GO
CREATE TRIGGER [NotificationTrigger]
ON [table1]
AFTER UPDATE
AS
BEGIN
EXEC NotificationProc @notification_id = 1;
END
GO
通过上面的实现,当table1的column1的数据产生变化时,”NotificationTrigger”触发器就会触发,然后”NotificationProc”存储进程被履行,其中会调用msdb.dbo.sp_send_db_notification这个系统存储进程发送通知,其中发送的信息就是@message。
总的来讲,MSSQL通知是一种很强大的数据改变侦测工具,通过它,我们可以对数据变化进行侦测,并以某种特定的协议将信息发送到客户端,从而实现服务器与客户端之间的实时通讯。
本文来源:https://www.yuntue.com/post/208345.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏