0

我正在使用 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

谢谢布里杰什

4

1 回答 1

1

查看这篇文章,了解 SQLDepenency 查询的限制

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

特别注意:

该语句不得使用任何非确定性函数,包括排名和窗口函数。

GETDATE() 就是这样一个函数。

于 2010-03-03T17:49:16.467 回答