Seriously, SqlCacheDependancy looked like one of the best new features of ASP.NET 2.0. Unfortunately, this feature is crippled because of the limited queries you can use. See this MSDN article for more on that. Basically you can't use TOP, ORDER BY, COUNT(*) and many other standard SQL clauses. This is a serious limitation.
I am across this post about one person's attempt to get this to work which led to this post on the rules and some criticisms of the Query Notification mechanism. Here is the official MSDN article on creating query notifications.
So I wonder if this mechanism is too complicated for real-world use. It certainly seems nice on first review but after trying to use it I can testify that it difficult to get this working correctly. The query restrictions really limit your options.
I'm not ready to give up because the potential up side to this is just too great. One alternative I'm considering is trying the overloaded SqlCacheDependancy constructor and trying to pass the database and the table. For joins and sub-queries I may need to hook multiple SqlCacheDependancy objects together with the AggregateCacheDependency. This seems like a big pain but I think it may be worth it because your site gets much faster once it is all cached up.