我目前正在为查询通知注册的查询。根据Notification Serivces的规则,我只能在为订阅设置的查询中使用确定性函数。但是,GetDate()(以及我能想到的几乎任何其他方法)都是非确定性的。每当我提取数据时,我希望能够将结果集限制为仅由当天确定的相关记录。SQL查询通知和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...
其他的想法:
我们已经在我们的数据库应用程序的控制表,我们用它来存储应用程序级别设置。我曾想过编写一个小脚本,保持记录最新的w/teh当前smalldatetime。然而,我加入这张桌子也没有通知,我不知道为什么。我推测它有一些特定的文本类型(列名),这是令人沮丧的。
示例代码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'
有没有人有什么建议?
编辑:这里是一个link on MSDN,让通知服务规则
好的链接:)我建议将此标记为答案 – MartW 2009-10-30 14:12:58