2017-03-26 35 views
1

當網絡中的其他用戶更新或插入記錄到SQL表中時,是否有辦法觸發事件?當其他用戶更新到表格時,是否有辦法觸發事件?

我可以每隔幾秒鐘從數據庫中讀取表格,然後比較數據以查看是否有差異,但這似乎是資源密集型的。也許,我應該提到我正在使用C#/ WinForm和SQL數據庫,雖然我已經標記了它。


我已經看了SQL觸發,但不也需要讀取觸發器表,可以是資源密集?我正在尋找更多的在後臺運行的小程序/服務,當用戶對數據庫進行更改時,觸發它。然後Foreground應用程序可以檢查服務以查看是否進行了更改。我的思維過於複雜嗎?

+1

是的,你可以創建觸發器表。你可以檢查這個問題的接受答案:http://stackoverflow.com/questions/741414/insert-update-trigger-how-to-determine-if-insert-or-update – mako

+0

你想在觸發..只是檢查並記錄更改或防止更改? – Aamir

+0

@mako,這個鏈接是用於VB的,它的概念也和我在我的問題中提到的類似,我試圖避免這樣做。 – itchibahn

回答

1

如果要完成的處理可以完全用SQL(或其他語言,但在數據庫中)編寫,那麼您可以使用trigger

在插入/更新/刪除數據時在數據庫上執行觸發代碼。究竟可以做什麼以及可以使用哪種語言取決於具體的數據庫,但大多數數據庫都支持觸發器的概念。

1

打開與服務器的連接並每隔幾秒鐘讀取一次是多餘的。 除了你會有瘋狂的流量,當你有多個用戶誰將會嘗試每隔幾秒鐘連接你的分機...

因爲6502說,觸發器是要走的路。 msdn中有一個很不錯的article

0

在閱讀SqlDependency和Trigger之後,他們似乎都依賴於定期輪詢數據庫。我認爲這最終可能會影響表現。所以我決定在Windows服務上學習代碼。希望編寫Windows服務,我可以存儲有關剛剛保存的記錄的信息。而且,我可以輪詢它來查看我需要重新加載哪張表。我希望我不會過分複雜的東西....

謝謝,+1大家爲您的答覆。

相關問題