为什么以前工作且未更改的t-sql查询不再返回任何行?

时间:2010-04-13 20:07:15

标签: tsql sql-server-2008

我已成功运行此查询多次,不超过几周前。我没有对它做过任何改变。后端数据似乎不太可能发生变化而不会产生任何结果。还有什么可以促成这个?

3 个答案:

答案 0 :(得分:5)

如果它是完全相同的查询,那么它必须是要查询的数据或正在更改的数据库,除非您在查询中有某种时间/瞬态过滤,例如使用GETDATE过滤日期范围。

所以我按顺序检查以下内容:

  1. 这是完全相同的查询吗?
  2. 在同一个数据库上运行?
  3. 查询是否过滤了对时间敏感的数据?
  4. 否则,我猜测数据已经改变

答案 1 :(得分:1)

要添加到@Daniel DiPaolo's excellent answer,如果您在查询中使用视图,则可能已更改。作为一个真正的延伸,如果您已计算加入或过滤的列,并且公式已更改,则可能导致不返回行。

答案 2 :(得分:0)

尝试重新编译查询。最简单的方法是删除并重新创建它。

如果查询现在运行,那么错误的查询计划就是原因。这发生在我的数据库中。解决方案是添加重新编译提示。听起来很糟糕我知道......