日期范围在索引视图的where子句中

时间:2010-08-16 07:44:41

标签: sql sql-server tsql sql-server-2008

我有一个索引视图,我用

运行查询
WHERE GETDATE() BETWEEN start_date AND end_date
WHERE子句中的

我怀疑我的问题的答案可能不是,但是,是否可以将其推入索引视图或做一些聪明的事情以达到同样的效果?

我担心索引视图将在GETDATE()中使用的内容将是创建索引视图时返回的GETDATE(),这不是我想要的。我一直希望这是当前的日期和时间。另外,我正在使用SQL Server 2008。

1 个答案:

答案 0 :(得分:1)

您将无法在索引视图中执行此操作。

考虑SQL Server如何实现这一点。每隔3ms(或者通常GETDATE()值可以更改),SQL Server必须重新评估是否应将任何新行添加到视图中,或者是否需要删除任何现有行。

将此与索引视图的常用示例和使用限制进行比较,希望SQL服务器可以在适当的基表的INSERT / UPDATE语句中做出包含/排除决策。