| 

.NET C# Java Javascript Exception

5
Im alten SQL Server 2000 hatten wir etliche Funktionen und Views in denen ein OrderBy definiert wurde. Wenn man dann eine selche View ausführte kamen die Daten auch wie gewünscht zurück. Das auch bei Funktionen.

Beim neuen SQL Server 2008 R2 mussten wir jetzt feststellen dass das nicht mehr so ist. Wenn man in einer View/Function ein OrderBy definiert kommen die Daten nicht sortiert zurück.

Kann das geändert werden? Wäre das etwas was man irgend wo in den Einstellungen ändern könnte?
News:
18.03.2011
GENiALi 2,5k 1 2 8
3 Antworten
3
Cool. Werdens uns anschauen. Danke.
GENiALi 18.03.2011
Kollege monierte gerade das wir den R2 haben. Bin aber irgend wie ein paar Patches am laden. Mal schauen. Aber für 2008 und 2005 dürfte der passen.
GENiALi 18.03.2011
Darüber hatte ich mich auch schon gewundert.
Super +1
Jürgen Luhr 18.03.2011
3
Strenggenommen ist das order by in einem view ungültig bzw. ohne Wirkung. Der SQL Server verhält sich korrekt. Da dir das aber nicht weiterhilft habe ich einen Workaround: Erstelle einen clustered index auf dem view und verwandele ihn dadurch zu einem indizierten view. Der query optimizer wird nun stets den clustered index verwenden und die daten sortiert zurückgeben. Das ist aber genauso wie vorher ein übler Hack.
18.03.2011
alexander 860 2 9
Danke. Wenn die 1000 Updates, die ich runtergeladen habe, nichts helfen können wir das mal probieren. Dass das Verhalten so richtig wäre wuste ich gar nicht. Habe das aber unterdessen auch irgend wo gelesen.
GENiALi 18.03.2011
Nur das äußerste order by gilt. Das hat auch einen logischen Grund, den ich grade nicht mehr weiß.
alexander 18.03.2011
2
Weiterer Workaround:

select top 99.9999999 percent *
order by spalte

Habe es nicht getestet. Könnte Probleme mit Rundung machen (off by one fehler so dass die letzte Zeile fehlt).
18.03.2011
alexander 860 2 9

Stelle deine Sql-server-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH