;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;
Keine übermäßig interessante Abfrage, aber ich erhalte eine Fehlermeldung, wenn ich sie mit der folgenden ORDER BY
Klausel ausführe :
Nachricht 517, Ebene 16, Status 1, Zeile 4
Das Hinzufügen eines Werts zu einer 'datetime'-Spalte verursachte einen Überlauf.
Ohne die ORDER BY
Klausel läuft es jedoch einwandfrei. Wenn ich die Abfrage in anderen Katalogen ausführe, die in derselben Instanz auf demselben Server enthalten sind, wird die Abfrage außerdem mit oder ohne ORDER BY
Klausel ausgeführt.
Ich habe mir die Konfigurationsoptionen und Kompatibilitätsstufen zwischen dem betroffenen Katalog und einem Katalog angesehen, in dem die Abfrage wie erwartet ausgeführt wird, aber nichts gefunden, was den Unterschied rechtfertigen könnte. Ist noch jemand auf ein ähnliches Problem gestoßen? Ich kann es jetzt umgehen, müsste aber im Idealfall in der Lage sein, das Problem zu beheben, was auch immer es ist.
Möglicher Hinweis - Wenn Sie eine relativ große Anzahl von Objekten in einem Katalog haben (> 5000), können Sie den Fehler möglicherweise reproduzieren ... Dies tritt in meinem größten Katalog auf und es scheint, dass wenn ich ein TOP in einfüge Der CTE, das ORDER BY-Problem, verschwindet.