繁体   English   中英

通知应用程序插入或删除的行

[英]Notify application for inserted or deleted rows

我有一个 Microsoft SQL Server 2008 (SP3) 正在运行,并且想在其他一些无法访问的应用程序在某个表中添加或删除行时发出通知。 我知道我可以使用触发器在插入或删除等操作数据(sql)。但不知道如何监视表和通知。 我要构建以显示通知的客户端可以是 wpf xaml 应用程序、通用 Windows 项目或 Web 应用程序。 所以问题是监控表和触发发送某种通知(或休息网络电话或其他东西)之间的联系

我需要通知服务还是有更好/更简单的方法? 或者您会建议使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM