监视SQL Server以获取新行

mad*_*lan 2 sql vb.net sql-server

我正在创建一个应用程序,如果在应用程序数据库中的表中添加了新行,则会通知用户.是否最好为此创建一个触发器,或者直接从应用程序每隔几秒检查一次?思考?

Rem*_*anu 5

使用查询通知.这是SQL Server功能,允许在其他用户更改数据时将通知主动推送到客户端.它更好地称为SqlDependency.您订阅了一个查询,并在结果集发生更改(添加,删除或修改行)时收到通知.

例如.使用LinqToCache查询并对失效通知做出反应:

var query = (from r in ctx.table select r).AsCached(
 "table", new CachedQueryOptions() {
    OnInvalidated = (sender, args) {
      // the query was invalidated, a new row was added!
      // refresh display or notify user
    }
 });
DisplayRows(query);
Run Code Online (Sandbox Code Playgroud)