Wenn ich Datensätze in eine lange Tabelle einfüge, erhalte ich den Fehler "Die Konvertierung ist fehlgeschlagen, wenn der Varchar-Wert 'NULL' in den Datentyp 'int' konvertiert wurde" Wie kann ich feststellen, welche Spaltenfehler aufgetreten sind?
Die Tabelle enthält viele Felder und Millionen von Datensätzen. Jede Iteration dauert 10 Minuten, um zu bombardieren, wenn ich versuche, eine "NULL" -String irgendwo in eine Integer-Spalte einzufügen. Ich dachte, SQL Server kann mir den genauen Namen der Spalte sagen: (
Wenn der Wert wirklich NULL
ist, würde kein Konvertierungsfehler auftreten. Sie haben jedoch eine Zeichenfolge="NULL", dann würden Sie diesen Fehler erhalten.
Was Sie tun könnten, ist ...
%Vor% NullIf
gibt den Wert des ersten Parameters zurück, wenn dieser nicht mit dem zweiten Parameter übereinstimmt. Wenn die Parameter identisch sind, gibt NullIf
NULL
zurück.
Beispiel:
%Vor% Der erste gibt 'Any Value' zurück und der zweite gibt NULL
(nicht 'null') zurück
Die Tatsache, dass "der varchar Wert 'NULL'" erwähnt wird, zeigt an, dass Sie versuchen, den Wert der Spalte auf die Zeichenfolge "NULL" anstelle des Werts NULL zu setzen.
Suchen Sie in Ihrer Anweisung nach dem Wort NULL, das von Anführungszeichen umgeben ist. Sie müssen diese Anführungszeichen entfernen.
Beginne mit dem Kommentieren eines nach dem anderen, bis es aufhört zu bombardieren. Oder sehen Sie sich an, welcher Wert für eine int-Spalte NULL ist.
Müssen Sie die Daten korrigieren oder können Sie einfach Nullen in Nullen umwandeln?
Wenn Sie nur konvertieren können, könnten Sie Ihre VARCHARS, die mit einer ISNULL-Funktion konvertiert werden, umbrechen. Legen Sie einfach Folgendes um alle Werte, die in int-Felder eingefügt werden.
%Vor%Tags und Links sql-server