none
Problem bei Datenbankversion RRS feed

  • Frage

  • Hallo zusammen,

    ich habe eine Datenbank unter SQL 17.3.
    Diese möchte ich auch auf meinem Tablet verwenden. Da habe ich SQL 16 installiert. Nun bekomme ich die Fehlermeldung beim Versuch des Anfügens:

    Database cannot be opened because it is version 869. This server supports version 782 and earlier.

    Was kann ich da tun? Kann man die Version downgraden?

    Grüße-


    Dietrich


    PS. Den Kompatibilitätsgrad habe ich auf SQL Server 2014 gesetzt.
    • Bearbeitet dherrmann Donnerstag, 19. April 2018 08:17
    Donnerstag, 19. April 2018 08:11

Antworten

  • Hallo Dietrich,

    Datenbank markieren, Tasks, Skripts generieren, Weiter, Weiter, Erweitert

    Auswählen bei "Datentypen, für die ein Skript erstellt wird": Schema und Daten

    OK

    Auswählen: in neuem Abfragefenster

    Schönen Abend.

    • Als Antwort markiert dherrmann Freitag, 20. April 2018 06:20
    Donnerstag, 19. April 2018 17:38
  • Allerdings kann ich nicht richtig erkennen, dass damit auch die Daten sozusagen kopiert werden...

    Hallo Dietrich,

    das hast Du die Option für die Skripterstellung für die Daten nicht ausgewählt; Standard ist "Nur Schema"


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert dherrmann Freitag, 20. April 2018 06:20
    Freitag, 20. April 2018 05:41
  • Hallo Dietrich,

    SQL Server wär noch nie aufwärtskompatibel was die Datenbankdateien oder Sicherungsdateien angeht.

    D.h. Du kannst zwar problemlos bspw. eine SQL Server 2014 Sicherung in einen SQL Server 2016 einspielen, umgekehrt aber nicht, da ist es auch egal, welchen Kompatibilitätsgrad man eingestellt hat. Sobald die Datenbank einmal in einer höheren Version eingebunden war (da reicht das Anhängen der Datenbankdatei völlig aus) kann sie nicht mehr in einer früheren Version eingebunden werden.

    Schön ist das nicht, da gebe ich dir Recht. Und zwingend notwendig ist es auch nicht aber leider so gewollt.

    Ansonsten bleiben dir halt noch Tools wie Red Gate SQL Compare und SQL Data Compare, mit denen man Struktur und ggfs. Inhalte synchronisieren kann. Ich nutze das teilweise genau für diese Zwecke (entwickele mit SQL 2016, Kunde hat aber nur SQL 2012, ...)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert dherrmann Donnerstag, 19. April 2018 08:51
    Donnerstag, 19. April 2018 08:37
    Moderator
  • Vielen Dank euch allen, die mir hier die Tipps gegeben haben!!! Tolle Zusammenarbeit.

    Kurz bevor die Tipps eingingen, wie auch die Daten involviert werden, hatte ich es selbst gefunden und diese Option gesetzt. Trotzdem danke.

    Ich habe dann noch die Option für den Skripttyp auf "SQL Server 2016" gesetzt.

    Da hat alles dann bestens funktioniert!

    Grüße und schönes WE!-


    Dietrich

    • Als Antwort markiert dherrmann Freitag, 20. April 2018 06:20
    Freitag, 20. April 2018 06:20

Alle Antworten

  • Hallo,

    Die Version 17.3 ist die Version des Management Studios nicht des SQL Servers. Aber du hast wahrscheinlich einen SQL Server 2017 im Einsatz. Datenbanken sind nicht abwärtskompatibel. Daher kannst du keine Datenbank die auf einem neueren SQL Server erstellt wurde in einer älteren Version nutzen.


    Benjamin Hoch
    MCSE: Data Platform & Data Management and Analytics
    MCSA: SQL Server 2012/2014 & 2016 DB Administration
    MCSA: Windows Server 2012

    Donnerstag, 19. April 2018 08:18
  • Danke für die schnelle Antwort, Benjamin!

    Sehr anwenderfreundlich ist das allerdings nicht...

    Gibt's da kein Tool zum Umwandeln?

    Ansonsten kann ich dann wohl nur über Ex/Import via CSV die Daten transportieren. Nun, das ginge in meinem Falle, denn die Datenbank ist nicht sehr umfangreich und unterliegt nur selten Änderungen.

    Grüße-


    Dietrich

    Donnerstag, 19. April 2018 08:29
  • Wenn es sich um einen SQL Server Express handelt würde ich eher dazu neigen die ältere Version auf 2017 zu heben. Dies würde die wenigsten Änderungen bedeuten.

    Anwenderfreundlichkeit kann man hier sehen wie man will. Es ist halt mit fast allen Programmen die ich kenne so, dass ältere Versionen nicht zwingend mit neuere Versionen umgehen können umgekehrt aber schon. In neueren Versionen sind halt einfach Konstrukte enthalten welche in den Vorgängerversionen noch gar nicht bekannt waren. Und da man in einer Datenbank eines bestimmt nicht möchte, dann sind es Inkonsistenzen wegen fehlender Programmfeatures.

    Ich kenne zumindest kein Tool welches einem die Konvertierung übernimmt.


    Benjamin Hoch
    MCSE: Data Platform & Data Management and Analytics
    MCSA: SQL Server 2012/2014 & 2016 DB Administration
    MCSA: Windows Server 2012

    Donnerstag, 19. April 2018 08:37
  • Hallo Dietrich,

    SQL Server wär noch nie aufwärtskompatibel was die Datenbankdateien oder Sicherungsdateien angeht.

    D.h. Du kannst zwar problemlos bspw. eine SQL Server 2014 Sicherung in einen SQL Server 2016 einspielen, umgekehrt aber nicht, da ist es auch egal, welchen Kompatibilitätsgrad man eingestellt hat. Sobald die Datenbank einmal in einer höheren Version eingebunden war (da reicht das Anhängen der Datenbankdatei völlig aus) kann sie nicht mehr in einer früheren Version eingebunden werden.

    Schön ist das nicht, da gebe ich dir Recht. Und zwingend notwendig ist es auch nicht aber leider so gewollt.

    Ansonsten bleiben dir halt noch Tools wie Red Gate SQL Compare und SQL Data Compare, mit denen man Struktur und ggfs. Inhalte synchronisieren kann. Ich nutze das teilweise genau für diese Zwecke (entwickele mit SQL 2016, Kunde hat aber nur SQL 2012, ...)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert dherrmann Donnerstag, 19. April 2018 08:51
    Donnerstag, 19. April 2018 08:37
    Moderator
  • Hallo Dietrich,

    Du kannst in SSMS von der ganzen Datenbank incl. aller Daten ein Skript generieren lassen, das Du dann auf dem älteren SQL Server ausführen kannst: https://blogs.msdn.microsoft.com/davidlean/2009/09/19/tip-ssms-script-your-entire-table-including-the-data-a-hidden-gem/


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 19. April 2018 10:48
  • Herzlichen Dank, Olaf, für den Tipp, den ich in Kürze ausprobieren werde!!
    Ich berichte dann...

    Dietrich

    Donnerstag, 19. April 2018 11:02
  • Hallo Olaf, das genannte script () habe ich erstellt.
    Allerdings kann ich nicht richtig erkennen, dass damit auch die Daten sozusagen kopiert werden...
    Hier mal ein Auszug aus dem Skript (für eine einzelne Datei erstellt):
    Nach dem Creating (sieht OK aus) kommt noch Folgendes

    (
        [ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO

    Und da sehe ich eben nicht, dass irgendwas an Daten übertragen wird.
    Die Struktur kann ich notfalls händisch auf dem älteren Server (SSMS) erzeugen. Einige Tabellen habe ich auch schon mittels csv-Import erzeugt.
    Bei einer Tabelle aber gibt es ein Problem mit CSV:
    Es gibt ein Feld mit mehrzeiligem Textinhalt und es gibt ein Feld image (Fotos). Nun habe ich auch eine XML-Datei für diese Tabelle erstellt, die auch die Foto-Daten enthält. Dafür sehe ich aber keine Möglichkeit des Imports.

    Grüße-


    Dietrich

    Donnerstag, 19. April 2018 14:49
  • Hallo Dietrich,

    Datenbank markieren, Tasks, Skripts generieren, Weiter, Weiter, Erweitert

    Auswählen bei "Datentypen, für die ein Skript erstellt wird": Schema und Daten

    OK

    Auswählen: in neuem Abfragefenster

    Schönen Abend.

    • Als Antwort markiert dherrmann Freitag, 20. April 2018 06:20
    Donnerstag, 19. April 2018 17:38
  • Allerdings kann ich nicht richtig erkennen, dass damit auch die Daten sozusagen kopiert werden...

    Hallo Dietrich,

    das hast Du die Option für die Skripterstellung für die Daten nicht ausgewählt; Standard ist "Nur Schema"


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert dherrmann Freitag, 20. April 2018 06:20
    Freitag, 20. April 2018 05:41
  • Vielen Dank euch allen, die mir hier die Tipps gegeben haben!!! Tolle Zusammenarbeit.

    Kurz bevor die Tipps eingingen, wie auch die Daten involviert werden, hatte ich es selbst gefunden und diese Option gesetzt. Trotzdem danke.

    Ich habe dann noch die Option für den Skripttyp auf "SQL Server 2016" gesetzt.

    Da hat alles dann bestens funktioniert!

    Grüße und schönes WE!-


    Dietrich

    • Als Antwort markiert dherrmann Freitag, 20. April 2018 06:20
    Freitag, 20. April 2018 06:20