通知应用程序插入或删除的行
本文关键字:删除 应用程序 插入 通知 | 更新日期: 2023-09-27 18:27:38
我有一个正在运行的Microsoft SQL Server 2008(SP3),当其他无法访问的应用程序从某个表中添加或删除行时,我希望发出通知。我知道我可以使用触发器来处理插入或删除的数据(sql)等。但不知道如何监控表和通知。我想要构建的显示通知的客户端可以是wpf-xaml应用程序、通用窗口项目或web应用程序。因此,问题是监控表和触发发送某种通知(或休息网络呼叫或其他什么)之间的连接
我需要Notification Services还是有更好/更简单的方法?还是建议使用CLR触发器?还是WPF数据触发器?这对我来说似乎是最简单的。
编辑我想要的输出是一种监控应用程序,它显示的内容如下:
时间、产品代码、数量、删除/添加的内容如下:
- 上午9:45:增加了2台夏普电视
- 上午10:15:5飞利浦电视台被删除
- 等等
编辑2有很多关于SqlDependency
的建议,但msdn说:
通常,大多数非ASP.NET应用程序都应该使用SqlDependency对象。ASP.NET应用程序应使用更高级别的SqlCacheDependency,它封装SqlDependency并提供用于管理通知和缓存对象的框架。
但我不知道如何查看删除的行。因此,也许可以对该表进行触发器,以便在消息表中插入消息product 123 removed 5 times
。和消息表中的product 456 added 15 times
,然后是对新的待创建消息表的sqldependency?
这里审计是我的表,当表上发生一些事情时,它会引发一些消息。
create trigger tr_audit_all on audit after delete,insert ,update
as begin
if exists (select 1 from inserted) and not exists (select 1 from deleted)
begin
print 'record inserted '
select * from inserted
end
if exists (select 1 from inserted) and exists (select 1 from deleted)
begin
raiserror( 'record inserted ',1,15)
end
if not exists (select 1 from inserted)and exists (select 1 from deleted )
begin
print 'record deleted '
end
end
drop trigger tr_audit_all