其他程序往sql server数据库的表中写入数据,目前无法获取程序的接口。
表的简易结构如下:
id  事件代码   事件发生时间在数据库的表发生变动时,一般情况是最新的事件加入表中, 我的程序想要尽早获取到这个事件,请问如何实现?方法1、可能让sql数据库通过某个接口自动通知我的程序吗?  sql server是否有这个功能?
方法2、我能想到的方法,就是在我的程序中开辟一个线程不断查询数据库,当数据库表的事件时间有更新时执行相关操作。
但是感觉这样子会对数据库造成较大的负担,而且不够实时。请问有更好的更可行的方法吗?

解决方案 »

  1.   

    SQL Server 2005中引入的  Service Broker ,用query notification 机制 
      

  2.   

    service broker
    触发器 + sp_oa系列存储过程 + 你自己写好的com组件
    如果你用.net还可以设置基于数据库的缓存依赖,一但表中有变更,缓存失效,这时就可以去处理,而不必定时去刷数据库。
      

  3.   

    唉 可惜这个项目装的是sql server 2000,我用的vc6.。这个方法:   使用触发器,当表中的数据进行了修改后,进行通知。能否说的详细一点?
      

  4.   


    CREATE TRIGGER my_trig ON tbname FOR INSERT, UPDATE
    AS
      做你想通知的事情.
    GO