Удаление кэша, если в запросе есть предложение WHERE - PullRequest
0 голосов
/ 05 декабря 2009

Я использую 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 Ответ

1 голос
/ 03 марта 2010

Ознакомьтесь с этой статьей, описывающей ограничения запросов SQLDepenency

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

В частности, Примечание:

В заявлении не должно быть никаких недетерминированные функции, в том числе функции ранжирования и управления окнами.

GETDATE () является одной из таких функций.

...