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

Tsql 为什么以前正常工作且未更改的t-sql查询不再返回任何行?,tsql,sql-server-2008,Tsql,Sql Server 2008,几周前,我已经多次成功运行此查询。我没有对它做任何改变。后端数据似乎不太可能发生足够大的变化而不产生任何结果。还有什么可能导致这种情况呢?如果是完全相同的查询,则必须是被查询的数据或数据库发生了更改,除非您在查询中进行了某种暂时性/暂时性筛选,例如使用GETDATE对日期范围进行筛选 因此,我将按顺序检查以下内容: 完全是同一个问题? 在同一个数据库上运行? 查询是否筛选对时间敏感的数据? 否则,我猜数据已经改变了 如果是完全相同的查询,则必须是已更改的数据或正在查询的数据库,除非在查询中进行某

几周前,我已经多次成功运行此查询。我没有对它做任何改变。后端数据似乎不太可能发生足够大的变化而不产生任何结果。还有什么可能导致这种情况呢?

如果是完全相同的查询,则必须是被查询的数据或数据库发生了更改,除非您在查询中进行了某种暂时性/暂时性筛选,例如使用GETDATE对日期范围进行筛选

因此,我将按顺序检查以下内容:

完全是同一个问题? 在同一个数据库上运行? 查询是否筛选对时间敏感的数据? 否则,我猜数据已经改变了
如果是完全相同的查询,则必须是已更改的数据或正在查询的数据库,除非在查询中进行某种临时/暂时筛选,例如使用GETDATE对日期范围进行筛选

因此,我将按顺序检查以下内容:

完全是同一个问题? 在同一个数据库上运行? 查询是否筛选对时间敏感的数据? 否则,我猜数据已经改变了
要添加到,如果在查询中使用视图,则该视图可能已更改。作为一个真正的延伸,如果您已经计算了要加入或筛选的列,并且公式已经更改,那么可能会导致行无法返回

要添加到,如果在查询中使用视图,它可能已更改。作为一个真正的延伸,如果您已经计算了要加入或筛选的列,并且公式已经更改,那么可能会导致行无法返回

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


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

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

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