;WITH
cte_Date ( DateCode_FK ) AS (
SELECT DATEADD( DAY,
1 - ROW_NUMBER() OVER (
ORDER BY so1.object_id ),
GETDATE() )
FROM sys.objects so1
CROSS APPLY sys.objects so2 )
SELECT TOP 10 d.DateCode_FK
FROM cte_Date d
ORDER BY d.DateCode_FK DESC;
没有什么特别有趣的查询,但如果我使用以下ORDER BY
子句运行它,我会收到一条错误消息:
消息 517,级别 16,状态 1,第 4 行
向“日期时间”列添加值导致溢出。
但是,没有该ORDER BY
子句,它运行得很好。此外,如果我在同一台服务器上的同一实例中包含的其他目录上运行查询,无论有没有该ORDER BY
子句,查询都可以正常运行。
我查看了受影响的目录和查询按预期运行的目录之间的配置选项和兼容性级别,但没有发现任何可能保证差异的内容。还有其他人遇到过类似的问题吗?我现在可以解决它,但理想情况下需要能够解决问题,无论它是什么。
潜在提示 - 如果您在目录中有相对大量的对象 ( > 5000 ),您 - 可能 - 能够重现错误......这发生在我最大的目录上并且看起来如果我在中包含 TOP CTE,ORDER BY 问题消失了。