В настоящее время я работаю над запросом, зарегистрированным для уведомлений о запросах. В соответствии с правилами уведомлений Serivces я могу использовать только детерминированные функции в моих запросах, настроенных для подписки. Однако GetDate() (и почти любые другие средства, о которых я могу думать) не являются детерминированными. Всякий раз, когда я извлекаю свои данные, я хотел бы ограничить набор результатов только релевантными записями, которые определяются текущим днем.SQL Query Notifications и GetDate()
Кто-нибудь знает о работе, которую я мог бы использовать, что позволило бы мне использовать текущую дату для фильтрации моих результатов, но не аннулировать запрос для запросов?
Пример кода:
SELECT fcDate as RecordDate, fcYear as FiscalYear, fcPeriod as FiscalPeriod, fcFiscalWeek as FiscalWeek, fcIsPeriodEndDate as IsPeriodEnd, fcPeriodWeek as WeekOfPeriod
FROM dbo.bFiscalCalendar
WHERE fcDate >= GetDate() -- This line invalidates the query for notification...
Другие мысли:
У нас есть таблица управления приложениями в нашей базе данных, которые мы используем для настройки уровня магазина приложений. Я подумал написать небольшой скрипт, который обновляет запись до текущего текущего smalldatetime. Однако мое присоединение к этой таблице также не подходит для notificaiton, и я не уверен, почему. Я предполагаю, что у него есть что-то делать с w/me, определяющим тип текста (имя столбца), что разочаровывает.
Пример кода 2:
SELECT fcDate as RecordDate, fcYear as FiscalYear, fcPeriod as FiscalPeriod, fcFiscalWeek as FiscalWeek, fcIsPeriodEndDate as IsPeriodEnd, fcPeriodWeek as WeekOfPeriod
FROM dbo.bFiscalCalendar
INNER JOIN dbo.xApplicationControls ON fcDate >= acValue AND acName = N'Cache_CurrentDate'
Кто-нибудь есть какие-либо предложения?
EDIT: Вот link on MSDN что дает правила для Notification Services
Хорошая ссылка :) Я предлагаю отметить это как ответ – MartW