none
SQL 2016, compatibility Level SQL 2000 Version 80 RRS feed

  • Frage

  • Hallo zusammen,

    gibt es eine Möglichkeit den Compatibility Level auf SQL 2000 einzustellen?

    wir haben leider noch eine DB bei der der Support bereits gekündigt ist aber noch Daten zu nachsehen benötigt werden und jetzt den SQL Server umstellen möchten. Extra wegen einer DB eine zweite SQL Server belassen wäre lästig.


    Chris

    Montag, 26. September 2016 09:40

Antworten

  • Ach, sowas ist natürlich Mist. Da haben sie noch die native Synthax verwendet.

    Die Abfragetexte sind mit ziemlicher Sicherheit in der Applikation hart verdrahtet und somit nicht mehr änderbar. Alle Ansätze, die eine On-the-Fly übersetzung beinhalten würden, sind teurer und aufwendiger als eine SQL 2008-Instanz noch ein paar Jahre zu betreiben...

    Vielleicht läßt sich die Applikation, wenn sie schon so alt ist, "nur zum Nachschauen" auf Access migrieren? Manche von diesen alten Programmen kommen ja ursprünglich aus der MDB-Welt...


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    • Als Antwort markiert -- Chris -- Montag, 26. September 2016 10:55
    Montag, 26. September 2016 10:44

Alle Antworten

  • Moin,

    es ist nicht vorgesehen, in Server 2016 weiter zurück als auf 100 zu gehen. Allerdings ist es vielleicht auch nicht schlimm, sofern die Applikation den Compatibility Level nicht explizit prüft, auf einen höheren Level als vorgesehen zu wechseln. Da, wie Du schreibst, die Datenbank nur zum Nachschauen beibehalten werden soll, kannst Du es ja einfach ausprobieren...


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    Montag, 26. September 2016 10:01
  • Hallo Chris

    Sofern du nicht in der Datenbank bestimmte Funktionen nutzt welche sich in den nachfolgenden Stufen geändert haben, kannst du einfach einen höheren Level wählen.

    Hier mal eine Übersicht der Änderungen zwischen 80 und 90

    https://msdn.microsoft.com/en-us/library/bb510680(v=sql.100).aspx

    Gruß Benjamin


    Benjamin Hoch
    MCSE: Data Platform
    MCSA: SQL Server 2012/2014
    MCSA: Windows Server 2012
    Blog

    Montag, 26. September 2016 10:03
  • danke für die Infos

    die Client Anwendung lässt sich starten. Abfragen jedoch nicht. Irgendwie hängt das mit dem ANSI oder Sortierung zusammen. Kann man das auch ändern?

    SELECT

    DISTINCT TOP 500  Fall.Nummer, Fall.Jahr, Fall.BuchID, Fall.FallID,Fall.Bezeichnung FallBez, Fall.StatusID,FStatus=Fall.StatusID, EvFallnotizDruckKZ from Fall, Buch, Buchart, Status, Nummernkreis, Aktion,  FVK WHERE Fall.BuchID=Buch.Buchid and Buch.BuchartID=Buchart.BuchartID AND zentralpersonid = 1083848 ORDER BY fall.jahr desc, fall.nummer desc

    Msg 4147, Level 15, State 1, Line 1

    The query uses non-ANSI outer join operators ("*=" or "=*"). To run this query without modification, please set the compatibility level for current database to 80, using the SET COMPATIBILITY_LEVEL option of ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes.


    Chris

    Montag, 26. September 2016 10:12
  • Ach, sowas ist natürlich Mist. Da haben sie noch die native Synthax verwendet.

    Die Abfragetexte sind mit ziemlicher Sicherheit in der Applikation hart verdrahtet und somit nicht mehr änderbar. Alle Ansätze, die eine On-the-Fly übersetzung beinhalten würden, sind teurer und aufwendiger als eine SQL 2008-Instanz noch ein paar Jahre zu betreiben...

    Vielleicht läßt sich die Applikation, wenn sie schon so alt ist, "nur zum Nachschauen" auf Access migrieren? Manche von diesen alten Programmen kommen ja ursprünglich aus der MDB-Welt...


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    • Als Antwort markiert -- Chris -- Montag, 26. September 2016 10:55
    Montag, 26. September 2016 10:44
  • Hallo Chris,

    Du musst die Abfrage umschreiben:

    SELECT DISTINCT TOP 500  
    	Fall.Nummer, 
    	Fall.Jahr, 
    	Fall.BuchID, 
    	Fall.FallID,
    	Fall.Bezeichnung	AS FallBez, 
    	Fall.StatusID,
    	--FStatus=Fall.StatusID, 
    	Fall.StatusID		AS FStatus,
    	EvFallnotizDruckKZ 
    
    from Fall
    	LEFT JOIN Buch		ON (Fall.BuchID=Buch.Buchid)
    	LEFT JOIN Buchart	ON (Buch.BuchartID=Buchart.BuchartID) 
    	--Status, 
    	--Nummernkreis, 
    	--Aktion,  
    	--FVK 
    
    WHERE zentralpersonid = 1083848 
    ORDER BY fall.jahr desc, fall.nummer desc

    Warum waren die Tabellen Status, Nummernkreis, Aktion, FVK enthalten? Es werden keine Inhalte aus den Tabellen ausgegeben noch wird festgelegt, wie diese in Beziehung stehen.

    Schönen Abend.

    Montag, 26. September 2016 17:54