Konvertierung von varchar, nvarchar im SQL Server fehlgeschlagen
Habe ich SQL-Server-Tabelle enthält Spalten vom Typ varchar(50)
als Ergebnis eine CSV zu importieren, die mithilfe der SQL Server-Import wizard.
Ich war zu wollen wissen, wie kann ich diese Daten ändern geben Sie zu nvarchar(9)
ohne eine SQL-Server-Fehler beim streichen.
Ich habe versucht zu tun, ein bulk update zum festlegen von Datentypen und Spalte Größen, die ich brauche, hatte aber immer noch das abschneiden Fehlermeldung, wenn ich versuchte, laden die csv in die leere Datenbank-Tabelle, die ich erstellt (mit meinen Daten-Typen, die ich brauche).
Dankbar für jede Hilfe.
Wie planen Sie, diese zu speichern, zum Beispiel, text
Sind Sie bereit, Daten zu verlieren, wenn es mehr als 9 Zeichen in dieser Spalte ?
Hi, ich bin die Speicherung der konvertierten Daten im gleichen SQl SERVER-Tabelle, aber in der neuen vom Datentyp nvarchar (9) Größe der Felder in derselben Tabelle
Hi M Ali, ja, ich bin bereit, Daten zu verlieren. So wie es da steht VARCHAR 50 Spalten sind zu groß für die Daten, die es enthält. Die Daten in der Spalte Länge 9
"how I can change this data type to nvarchar (9) without getting a SQL Server truncation error"
in der Spalte Typ nvarchar(9)
?Sind Sie bereit, Daten zu verlieren, wenn es mehr als 9 Zeichen in dieser Spalte ?
Hi, ich bin die Speicherung der konvertierten Daten im gleichen SQl SERVER-Tabelle, aber in der neuen vom Datentyp nvarchar (9) Größe der Felder in derselben Tabelle
Hi M Ali, ja, ich bin bereit, Daten zu verlieren. So wie es da steht VARCHAR 50 Spalten sind zu groß für die Daten, die es enthält. Die Daten in der Spalte Länge 9
InformationsquelleAutor daveb | 2014-03-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie bereit sind zu verlieren-und nvarchar-Daten werden nur in der Lage zu speichern 9 nicht-unicode-Zeichen, wählen Sie dann nur 9 Zeichen, die von Ihrem Quell-Tabelle, tun Sie das abschneiden eher als Sql-server tut es für Sie.
Die Folgende Abfrage trim alle Leerzeichen aus den Saiten, Dann nehmen Sie nur 9 Zeichen aus dem string und konvertieren Sie Sie in vom Datentyp NVARCHAR(9) für Sie.....
Kein problem, froh, dass es geholfen hat, ist Das, was ich getan hätte, update 🙂
InformationsquelleAutor M.Ali
Bulk insert in temp-Tabelle mit varchar(50) einsetzen und auf die tatsächliche Tabelle
InformationsquelleAutor Habeeb
Und es ist auch wichtig zu prüfen Feldern der Zieltabelle. Nur verbrachten 3 Stunden, weil der gleiche Fehler mit zufälligen casting, schneiden, substring und am Ende bemerkt, dass Kollegen erstellte Tabelle mit zu kurzen Feldlängen.
Ich hoffe, es hilft jemandem...
InformationsquelleAutor HoGo
Falls dieser Fehler Auftritt, während der Import/Export Aufgaben, die Sie verwenden können, die
select cast(xxx as nvarchar(yyy)) as someName
im "Schreiben Sie eine Abfrage zum angeben der Daten übertragen" - optionInformationsquelleAutor Niek
varchar und nvarchar verwenden Sie nur die Länge benötigt, für die Daten gespeichert. Wenn Sie brauchen, unicode-Unterstützung, die sicherlich zu konvertieren nvarchar, aber ändern Sie es von den 50-bis 9 - was ist der Punkt?
Wenn Sie Ihre Daten IMMER genau 9 betrachten Sie mit char(9), und nach einem von der transformation Vorschläge oben...
InformationsquelleAutor DavidCC