我目前的工作是一个注册为查询通知的查询。按照W /通知Serivces的规则,我只能在设立订阅我的查询使用确定性的功能。然而,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 /德电流SMALLDATETIME。然而,我加入到这个表是失败的notificaiton还有,我不知道为什么。我猜测,这事做瓦特/我specifitying文字类型(列名),这是令人沮丧的。

实施例编号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' 

有没有人有什么建议吗?

编辑:这里是一个上MSDN ,使该链路通知服务规则

有帮助吗?

解决方案

事实证明,我想出溶液。基本上,我在我的无效尝试查询,因为我是铸造价值,这标志着它作为非确定性日期时间。即使你没有特别请出了铸造,但做一个类似于:

RecordDate = 'date_string_value'

您还结束了W / A日期演员。希望这将有助于从别人谁打了这个问题。

此链接帮助我不少。

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

其他提示

要绕过一个很好的办法就是创建一个视图,只是说:“SELECT GETDATE()和现在一样”,然后使用视图查询。

编辑:我看不到任何关于不使用用户定义函数(这是我用过的“今日看法”位)。所以,你可以在一个指向该视图的查询中使用UDF?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top