2009-12-14 127 views
0

我只是數據庫的新手。
我想知道如何以編程方式監視數據庫的變化。 假設我想要一個.net應用程序,它會在每隔100或(n)行插入或行刪除或更新後運行。如何實現?
我對觸發器知之甚少,可以用它來啓動可執行文件。
但我聽說這不是一個好的做法。 還有別的辦法嗎?
2]在表更新上執行數據庫觸發事件?他們可以被抓進程序嗎?
3]這裏可以使用SQL報告服務嗎?以編程方式監視/監視數據庫(活動)

(同樣假設這個應用程序是獨立於實際的程序,它確實 數據庫操作。)

thxz

回答

2

SQL Server 2005中引入的查詢 通知,新功能, 允許應用程序從SQL Server請求 通知時, 結果的查詢變化。查詢 通知允許程序員 只有當 應用程序 以前檢索到的信息發生更改時,纔會查詢 數據庫。

退房的MSDN link更加清晰 和sample immplementation

+0

或者,如果它是甲骨文,使用數據庫更改通知:http://download.oracle .com/docs/cd/B19306_01/appdev.102/b14251/adfns_dcn.htm – Salamander2007

+0

它是否意味着任何性能問題? – Amitd

0

觸發器是真的要成爲你唯一的辦法,除非你不關心「第100」或「第n」的準確性。

2和3的答案是否定的。

您可以編寫託管存儲過程(MSDN example),但這對您真的沒有幫助。一般而言,觸發器可能是不好的做法,因爲它們可能會阻止初始呼叫者,但有時它們是唯一的解決方案。

0

我認爲你需要質疑你的要求,把這個低級別的數據監控放在一個單獨的應用程序中。回想一下你的數據的變化可能源於 -

你有每一個充分的認識:

  • 存儲過程中你的數據庫中(現在的和未來的),哪些更新這個表?
  • 應用程序,它可以打你的數據庫(現在和將來)

如果沒有,那麼看的變化降權在數據層面(即數據庫內)可能是最好的選擇,這可能意味着觸發器...