Announcement

Collapse
No announcement yet.

Falsch sortierte Sicht im SQL Server Management Studio

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Falsch sortierte Sicht im SQL Server Management Studio

    Hi,

    ich bin irgendwie am verzweifeln. Im Management Studio habe ich eine Sicht definiert "ORDER BY Datum DESC". Wenn ich nun mit der rechten Maustaste auf die Sicht klicke und dann auf "Sicht öffnen", dann erscheinen die Datensätze im Raster unsortiert.

    Muss ich da noch irgendwo einen Schalter umlegen oder ist das ein "Feature" des Management-Studios?

    Grüße

    Zimmi

  • #2
    Deine Annahme beruht auf einem kleinen Mißverständnis. Normalerweise liefert eine View kein geordnetes Resultset. Jetzt könnte es aber sein, dass ich eine View bastle, die mir die ersten 10 Zeilen eines selects, nach einem bestimmten Kriterium sortiert, liefern soll. Dazu muss die View aber dieses Kriterium kennen und da kommt dann das ORDER BY in der View zum Einsatz. Probiere also einfach mal ein "select TOP 10 from ... order by datum", dann wirst du sehen, dass das funktioniert.
    Leider kann man jetzt nicht daraus schlußfolgern, in der View dann eben ein TOP 100 PERCENT zu verwenden, denn der Preprozessor ist so intelligent, dieses wegzuoptimieren und wiederum eine unsortierte Ausgabe zu liefern (ein "select TOP 99 PERCENT ... funktioniert dagegen schon). Eine zweite Möglichkeit wäre da vielleicht noch ein "select TOP 999999 * from ... order by datum" zu verwenden, wenn die Tabelle sicher nie mehr als 999999 Records haben wird. Ist zwar kein schöner Hack aber meines Wissens nach die einzige Möglichkeit.

    bye,
    Helmut

    Comment


    • #3
      Vielen Dank, hat funktioniert!
      Trotzdem unschön...

      Comment


      • #4
        Kleiner Nachtrag, besonders für die, die bisher im SQL 2000 dieses "TOP 100 PERCENT" im Zusammenhang mnit einem "ORDER BY" verwendet haben und nun unter SQL 2005 feststellen, dass das nicht mehr funktioniert - Microsoft hat ein Hotfix herausgegeben, um auch in SQL 2005 dieses alte Verhalten zu haben:
        http://support.microsoft.com/?scid=k...6292&x=14&y=20

        bye,
        Helmut

        Comment


        • #5
          Hallo!

          Ist das Verhalten bein Bug?

          Ist bekannt ob das Verhalten mit den nächsten SP berreinigt wird?

          mfg
          Thomas

          Comment


          • #6
            Ich würde mal sagen, da hat der SQL2000 etwas gemacht, was gar nicht so vorgesehen war. Views sind ähnlich Tabellen und für beide gilt, dass ohne Angabe eines "order by" in der Abfrage das Resultat unsortiert sein kann. Man ist dann aber beim SQL2000 draufgekommen, dass man doch eine sortierte Ausgabe aus einer View kriegen kann und hat daher bei Abfragen der View auf das "order by" verzichtet. Wenn man sich nun den Text zu diesem Hotfix genau durchliest, dann sieht man, dass dieser Hotfix nur funktioniert, wenn man den Kompatibilitätslevel der DB auf SQL2000 zurücksetzt. Und weiters steht auch dort, man solle dies nur für den Übergang benutzen, bis der/die Programmierer/innen die View-Abfragen entsprechend um das "order by" erweitert haben und dann wieder auf SQL2005 umstellen. Ich schließe daraus, dass es in Zukunft also keine vorsortierten View-Abfragen mehr geben wird.

            bye,
            Helmut

            Comment


            • #7
              Guten Morgen Forum!
              Ich bin auch gerade bei der Umstellung von SQL-2000-Express auf SQL-2005. Jetzt wollte ich in der noch laufenden 2000er Datenbank die Sichten ändern und dort "TOP 100 Percent" mit "TOP 99999" ersetzen, konnte dann aber im Access-Frontend keinen Datensatz mehr editieren!? Kann das sein? Kann ich das umgehen? Ich würde gerne die alte Datenbank so verändern dass sie auf der 2000er UND auf der 2005er Version läuft, um vor der Umstellung noch einiges austesten zu können.
              Eine Installation der Hotfixe war bei mir nicht möglich. Ich habe zwar schon SP2 zum 2005er SQL-Server installiert, aber beim Hotfix wird immer noch nach einer vorherigen Version von sonstwas gefragt, und wenn ich dann was älteres zuvor installieren will wird nach was noch viel älterem gefragt.... Ich hab mir jetzt nicht die ganzen Files zusammengeschrieben. Aber vielleicht weis jemand mit welcher Software ich den 2005er so installieren kann, dass eben diese Sortierung wie im 2000er vorgenommen wird?
              Gruß
              Stefan

              Comment


              • #8
                hallo,
                sehe ich es richtig dass ein order by innerhalb der view nicht zieht, wenn ich ein select * from viewname order by feld1 mache das dann die lösung ist?

                Kann es auch sein dass dieses Verhalten auch auf Funktionen (udf) welche Tabellen zurückliefern zutrifft? Da wäre ich vor einem halben Jahr fast mal durchgedreht deswegen ;o)

                Comment


                • #9
                  Genau, ein "order by" liefert nur Durcheinander...

                  Comment


                  • #10
                    jo prima, ich glaube nachdem spotlight.de eingestellt wurde wird das mein neues Forum. Hier ist gut Kompetenz versammelt.

                    Comment

                    Working...
                    X