;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;
Nada muito interessante, mas estou recebendo uma mensagem de erro se eu executá-la com a ORDER BY
cláusula:
Msg 517, Nível 16, Estado 1, Linha 4
Adicionar um valor a uma coluna 'datetime' causou um estouro.
No entanto, sem a ORDER BY
cláusula, funciona muito bem. Além disso, se eu executar a consulta em outros catálogos contidos na mesma instância no mesmo servidor, a consulta funcionará bem com ou sem a ORDER BY
cláusula.
Examinei as opções de configuração e os níveis de compatibilidade entre o catálogo afetado e um catálogo no qual a consulta é executada conforme o esperado, mas não encontrei nada que pudesse justificar a diferença. Alguém mais se deparou com um problema semelhante? Posso contornar isso por enquanto, mas, idealmente, preciso ser capaz de corrigir o problema, seja ele qual for.
Dica potencial - se você tiver um número relativamente grande de objetos em um catálogo (> 5000), você poderá reproduzir o erro... Isso está ocorrendo no meu maior catálogo e parece que se eu incluir um TOP em o CTE, o problema ORDER BY desaparece.