title: How to monitor tables in SQL Server for changes
body: <p><a href="https://stackoverflow.com/questions/342031/net-sql-server-database-monitoring-insert-update-delete">This question</a> was asked quite some time ago, and while it covers possible solutions for SQL 2005 and 2008, it lacks a good solution for SQL 2000, which is still far too common.</p>
  
  <p>I need a way to monitor certain fields of a database table for changes, and notify my application when these changes occur so that I can blast them out on the local network as broadcast messages where anyone with a client can listen for them and display them as alerts (think something similar to stock market data reaching specific thresholds).</p>
  
  <p>I do NOT want to poll the database for several reasons.  1) I don't wish to add additional load to the servers.  2) I would rather get notifications in near real-time rather than wait for the polling frequency to expire.</p>
  
  <p>Now, I could put logic in the applications that update the database, but the data can be updated from several sources, including the web and I don't want to deal with web servers sending notifications across DMZ boundaries, etc.. And I don't want to have to maintain this in 20 different applications (the more overpowering issue).</p>
  
  <p>I've seen this done on SQL 2000 using extended stored procs and triggers, but the xp's seem to be difficult to make cross platform, and they break when installed on SQL 2005 and 2008.  Maybe that's just bad code in the examples i've seen, i'm not sure, but I am looking for something that works in SQL 2000 and later versions.</p>
  
  <p>Any ideas?</p>
  
  <p>EDIT:</p>
  
  <p>I've thought about dropping support for 2000, but that really doesn't solve my problem.  I would like a solution that is going to continue to work for years to come.  One problem with many microsoft technologies is that they drop support for them.  For instance, Notification services does what I need it to do, but they decided to deprecate that in 2008 and it won't be available in the next version.  So i'm looking for a solution that has a good chance of sticking around.</p>