Fragensteller
SQL Server Import-/Export-Assistent ändert datetime zu smalldatetime

Frage
-
Hallo,
ich versuche gerade Daten von SQL Server 2014 in eine neue Datenbank auf einem SQL Server 2012 zu importieren. Die Datumsspalten der Tabellen sind alle vom Typ datetime, aber der Assistent ändert die Zuordnung automatisch auf smalldatetime, weshalb der Import fehlschlägt.
Ein manuelles Zuordnen der einzelnen Felder kommt auf Grund der vielen Spalten und Tabellen eigentlich nicht in Frage.
Gibt es eine Möglichkeit das Mapping zu reparieren?
Alle Antworten
-
-
-
Hallo Olaf,
danke für die schnelle Antwort.
In dem beschriebenen Verzeichnis hat es in der Tat einige Mapping-Dateien.
Allerdings keine MSSql12ToMSSql11.xml, sondern nur Dateien vorheriger Versionen:
In diesen ist das Mapping für diesen Datentyp korrekt (datetime --> datetime).
Erzeugt man nun aus einer der vorhandenen Dateien die beschriebene MSSql12ToMSSql11.xml Datei oder ändert in den vorhandenen Dateien etwas ab so hat dies keine Auswirkung auf den Import-/Export-Assistenten.
Dieser verwendet immer noch das falsche Mapping.
Gibt es noch eine andere Einstellung?
-
Hallo,
ich habe es eben nachgestellt. Wenn in den Spalten keine Werte sind welche datetime erfordern, tatsächlich der nächst kleiner Datentyp verwendet. Erst als ich tatsächlich eine Wert von Datetime dort stehen hatte wurde auch bei der Übertragung der Datetime Datentyp verwendet.
Trage doch mal einen Testdatensatz ein welcher tatsächlich datetime (Beispielsweise '20120618 10:34:09.10 AM') nutzt und versuche es nochmal.
Gruß Benjamin
Benjamin Hoch
MCSE: Data Platform
MCSE: Data Management and Analytics
MCSA: SQL Server 2012/2014
MCSA: Windows Server 2012
Blog -
Hallo,
dies ist ein interessanter Ansatz, leider in diesem Fall in diesem Fall nicht zutreffend.
In dem entsprechenden Datenbankfeld stehen jede Menge Zeitangaben.
Auch ein manuelles Ändern der Werte hat keine Veränderung gebracht.
Ich habe das Szenario mit einem zweiten SQL 2014 Server nachgestellt. Und zwischen diesen Maschinen (2014 --> 2014) tritt das Problem nicht auf. Wird aber auf eine ältere Version des SQL Servers kopiert (auch SQL 2008 R2) kommt es zu dem falschen Mapping.
Gruß Andy
-
Ich habe das Szenario noch einmal mit einem komplett neuen System nachgestellt:
- Betriebssystem installiert (Server 2012 R2)
- SQL Server 2014 (12.0.5000) installiert.
- Neue Datenbank mit einer einzigen Tabelle (mit datetime-Spalte) Erstellt.
- Diese Tabelle mit Export-/Import-Assistent auf SQL-Server 2012 (11.0.2100) kopiert.
Ergebnis: Der Fehler ist wieder aufgetreten.
Ich gehe mittlerweile davon aus, dass es sich hierbei um einen Bug / Fehler im SQL Server 2014 handelt.
-
Hallo,
natürlich könnte man die Tabellen im Voraus durch ein Skript erzeugen und hätte dann keine Schwierigkeiten mit dem Mapping. Es handelt sich dabei aber um über 100 Tabellen mit teilweise weit mehr als 100 Feldern.
In den Vorgängerversionen hat dies immer ohne Probleme funktioniert.
-
Hallo Andy,
lass Dir doch einfach durch SSMS die SQL Skripte für die Tabellen & Abhängigkeiten anlegen: In SSMS Rechte Maus auf die DB => Tasks => Skripts generieren.
Das hat zudem den großen Vorteil, das Du eben auch alle PK / FK, Indizes, Statistiken, Trigger etc. mit Skripten lassen kann. Der Import/Export Wizard legt nur dumpf die blanke Tabelle an.
Olaf Helper
[ Blog] [ Xing] [ MVP]