簡體   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