如果查询具有WHERE子句,则缓存丢弃

时间:2009-12-05 08:50:09

标签: sqldependency

我正在使用SqlDependency和CacheManager类(企业库Cachcing块)在vb.net项目中创建一个缓存。

我已注册

OnDependencyChanged(ByVal sender As Object, ByVal e As SqlNotificationEventArgs) 

从Sql Server 2005获取通知的方法。

现在的问题是,如果查询不包含任何WHERE子句,则缓存会成功创建,但如果我在查询中添加了where子句,则OnDependencyChanged()方法会在创建缓存后立即获取通知。

我需要建议是否可以在查询中使用WHERE子句进行缓存。 我的查询是(使用WHERE子句):

SELECT [DATABASES_ID]  
      ,[DATABASENAME]
      ,[SERVERNAME]
  FROM [dbo].[DATABASES]
  WHERE datediff(dd,getdate(), [DATECREATED]) <=0

由于 Brijesh

1 个答案:

答案 0 :(得分:1)

查看本文,了解SQLDepenency查询的限制

http://msdn.microsoft.com/en-us/library/aewzkxxh.aspx

特别注意:

  

声明不得使用任何声明   非确定性功能,包括   排名和窗口函数。

GETDATE()就是这样一个功能。