Ich habe eine riesige INSERT
-Statement mit 200 Spalten und plötzlich bekomme ich die gefürchtete . Kann ich irgendwo die tatsächliche Spalte sehen, die den Wert "varchar" enthält? Ich weiß, dass ich eine der Spalten auf einmal entfernen kann, bis der Fehler verschwindet, aber es ist sehr mühsam."Fehler beim Konvertieren des Datentyps varchar in numerisch." - Welche Spalte?
Antwort
Sie geben keine SQL Server-Version oder Anzahl der Zeilen an.
Für SQL2005 + Hinzufügen der OUTPUT
-Klausel der INSERT könnte helfen, in den Schurken Reihe zu identifizieren, dass es wird geben die eingefügten Zeilen, bis ein Fehler auftritt, so dass die nächste Zeile die mit dem Problem ist
DECLARE @Source TABLE
(
Col1 VARCHAR(10),
Col2 VARCHAR(10)
)
INSERT INTO @Source
SELECT '1','1' UNION ALL
SELECT '2','2' UNION ALL
SELECT '3','3' UNION ALL
SELECT '4A','4' UNION ALL
SELECT '5','5'
DECLARE @Destination TABLE
(
Col1 INT,
Col2 VARCHAR(10)
)
INSERT INTO @Destination
OUTPUT inserted.*
SELECT *
FROM @Source
Returns
(5 row(s) affected) Col1 Col2 ----------- ---------- 1 1 2 2 3 3 Msg 245, Level 16, State 1, Line 23 Conversion failed when converting the varchar value '4A' to data type int.
Niemals zuvor OUTPUT bei INSERT versucht. Vielen Dank! – Espo
Nun, das ist nur eine Ahnung, aber was ist mit dem Einfügen der Daten in eine temporäre Tabelle und die Verwendung der GUI, um die Daten auf die andere Tabelle zu migrieren? Wenn es immer noch einen Fehler erzeugt, sollten Sie zumindest in der Lage sein, mehr Feedback zu diesen nicht-numerischen Spalt zu bekommen ...
Wenn es nicht funktioniert, prüfen, versuchen this.
Prost!
Leider ist dieser Fehler ein ernster Schmerz und es gibt keinen einfachen Weg zur Fehlerbehebung. Wenn ich es in der Vergangenheit gesehen habe, musste ich immer nur Gruppen von Kolumnen kommentieren, bis ich den Schuldigen gefunden habe.
Ein anderer Ansatz könnte die Verwendung der ISNUMERIC() - Funktion in T-SQL sein, um zu versuchen, den Schuldigen zu finden. jede Spalte in der Zieltabelle Unter der Annahme, numerisch ist (entsprechend anpassen, wenn es nicht ist), könnten Sie dies versuchen:
SELECT *
FROM SourceTable
WHERE ISNUMERIC(Column1) = 0
OR ISNUMERIC(Column2) = 0
OR ISNUMERIC(Column3) = 0
OR ISNUMERIC(Column4) = 0
...
Dies wird die Reihe aussetzen, die Sie nicht-numerischen Wert enthält, und sollte es ziemlich klar machen, welche Spalte es ist in. Ich weiß, es ist langweilig, aber zumindest hilft es Ihnen, den tatsächlichen Wert zu suchen, zusätzlich zu der Spalte, die Probleme verursacht.
- 1. Fehler beim Konvertieren des Datentyps varchar in numerisch (Newbie)
- 2. SQL-Ausnahme: Fehler beim Konvertieren des Datentyps numerisch in numerisch
- 3. Fehler beim Konvertieren von varchar in numerisch
- 4. Fehler beim Konvertieren des Datentyps varchar in float. C# VS
- 5. Fehler beim Konvertieren des Datentyps varchar in numerisch. Ich benutzen Datentyp varchar und versucht, 18-24 Wert
- 6. In welcher Zeile ist mein Fehler? Fehler beim Konvertieren des Datentyps nvarchar in numerisch
- 7. t-sql: Fehler beim Konvertieren des Datentyps varchar in numeric in then-Anweisung
- 8. Debug und Fehler finden "Fehler beim Konvertieren des Datentyps Varchar in Real"
- 9. Convert Irregular Varchar zu Numerisch
- 10. Msg 8114, Ebene 16, Status 5, Zeile 27 Fehler beim Konvertieren des Datentyps varchar in bigint
- 11. "Fehler beim Konvertieren des Datentyps varchar in float" aus einer einzelnen Zeile Datei importieren
- 12. Fehler beim Umwandeln des numerischen Datentyps in den Dezimalwert
- 13. Konvertierung fehlgeschlagen beim Konvertieren des Varchar-Wertes '%'
- 14. Konvertierung fehlgeschlagen beim Konvertieren des Varchar-Werts
- 15. Konvertierungsfehler beim Konvertieren varchar
- 16. Konvertierung fehlgeschlagen beim Konvertieren des Varchar-Werts in int
- 17. Datentyp Migration des Datentyps
- 18. Fehler: Konvertierung fehlgeschlagen beim Konvertieren der Varchar-Wert ',' in Datentyp
- 19. Fehler beim Konvertieren des Datentyps nvarchar in int mit gespeicherter Prozedur
- 20. SQL Server: Überprüfen des Datentyps einer Spalte
- 21. SQL-Fehler: Konvertierung fehlgeschlagen beim Konvertieren des Varchar-Wertes 'PJOI015' in den Datentyp Bit
- 22. Ändern des Datentyps beim Importieren der Excel-Datei in Access
- 23. Wie Varchar zu Double in SQL konvertieren?
- 24. Konvertieren varchar Spaltenwerte in Integer in MySql
- 25. vb.net - Sortieren datagridview Spalte numerisch
- 26. Postgres: Varchar in Text konvertieren
- 27. Konvertierung fehlgeschlagen beim Konvertieren des Varchar-Werts '1' in den Datentyp int
- 28. Varchar in Ascii konvertieren
- 29. Ändern des Datentyps der Spalte zu Uniqueidentifier von Bigint
- 30. Fehler beim Konvertieren Datentyp nvarchar in int
Sie könnten die Hälfte der Spalten gleichzeitig auskommentieren; immer noch langweilig, aber schneller. –