簡體   English   中英

我如何跟蹤對數據庫表的任何更改

[英]How can i track any changes to Database table

我有 2 個應用程序,一個用於添加到數據庫中,另一個用於查看數據庫中的任何更改,

我如何跟蹤數據庫中的任何更改(新記錄,現有記錄的更改,刪除),是否有類似系統觀察者的類來觀察數據庫表?

我搜索並找到了 SQL Dependency Class,但我不知道它是否適合我的場景。

提前致謝,

您可以使用觸發器來檢查在您的實例中執行的 INSERT、UPDATE 或 DELETE 查詢。

此外,SQL Server 有一個很棒的工具SQL Server Profiler 您可以使用它連接到您的實例並偵聽每個查詢和操作。

這個SO問題也許可以幫助你。

我不建議在這種情況下使用觸發器,因為這將是一個額外的負擔。

但有2個選擇

1)。 Microsoft SQL Server的-變更數據捕獲(CDC) - 這里不幸的是這不是標准版本。 但您可以在 Enterprise、Developer 和 Evaluation 版本中找到

2)。 CodePlex-StandardCDC在這里

3)。 更改跟蹤 (CT)可以是一個選項 請參閱此處輸入鏈接描述

使用開源類SqlDependencyEx 配置和使用非常簡單:

int changesReceived = 0;
using (SqlDependencyEx sqlDependency = new SqlDependencyEx(
          TEST_CONNECTION_STRING, TEST_DATABASE_NAME, TEST_TABLE_NAME)) 
{
    sqlDependency.TableChanged += (o, e) => changesReceived++;
    sqlDependency.Start();

    // Make table changes.
    MakeTableInsertDeleteChanges(changesCount);

    // Wait a little bit to receive all changes.
    Thread.Sleep(1000);
}

Assert.AreEqual(changesCount, changesReceived);

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM