/ / So wählen Sie einen Datensatz mit einem anderen Datentyp aus der SQL-Spalte aus - SQL, SQL-Server

So wählen Sie einen Datensatz mit einem anderen Datentyp aus der SQL-Spalte - SQL, SQL-Server

Ich habe zwei einen Tisch und eine Aussicht. Die Tabelle besteht aus zwei Zeilen mit den Datentypen nvarchar und money. Ich aktualisiere die Tabelle, indem ich aus der folgenden Ansicht auswähle.

Insert into MyTable
Select * from MyView

Dieses Update schlägt kürzlich aufgrund eines Fehlers fehl "Zeichenfolge oder Binärdaten werden abgeschnitten". Allerdings, wenn ich durch Select-Anweisung zu so etwas wie geändert.

Select * from Myview WHERE Column is not null

OR

Select * from Myview WHERE Column > 0

Die oben genannten arbeiten mit einem warnenden Spruch Warning: Null value is eliminated by an aggregate or other SET operation. . Mir ist der Gedanke gekommen, dass es sich um eine der folgenden handeln könnteNullwertdatensätze enthalten etwas, das nicht null ist. Meine Tabellenspalte ist vom Geldtyp und akzeptiert null. Ich nahm an, dass der Fehler auf etwas zurückzuführen ist, das nicht vom Gelddatentyp ist. Der Rekord ist riesig. Gibt es eine Möglichkeit, diese Aliens-Einträge zu filtern und zurückzugeben?

Ich habe auch gelernt, dass ich den Fehler durch Ein- und Ausschalten der ANSI-Warnungseinstellung beseitigen kann Hier . Mein Anliegen ist, dass dies nicht zum Verlust von Daten führt. Bitte um Hilfe.

Antworten:

1 für die Antwort № 1

Anscheinend überschreiten die Daten in einer Spalte in Tabelle MyView das Limit der entsprechenden Spalte in Tabelle MyTable


2 für die Antwort № 2

Zeichenfolge- oder Binärdaten würden abgeschnitten, da die von MyView kommenden Daten größer sind als die Spaltengröße in MyTable

Benutzen

Select Max(Len(FieldName)) From MyTable

um die maximale Länge des nvarchar-Feldes in der MyTable zu überprüfen Oder Sie können Links verwenden, wenn Sie Daten wie diese einfügen

Insert into MyTable
Select Left(FieldName,50), Column1 from MyView

Beachten Sie, dass 50 der Größe des Felds nvarchar in MyTable entsprechen sollte


2 für die Antwort № 3

Zeichenfolge oder Binärdaten werden abgeschnittensehr häufiger Fehler. Es passiert normalerweise, wenn wir versuchen, Daten in eine Spalte des Datentyps string (varchar, nvarchar, char, nchar) einzufügen, die größer als die Größe der Spalte ist. Sie müssen also die Datengröße in Bezug auf die Spaltenbreite überprüfen und feststellen, welche Spalte ein Problem verursacht, und es beheben.

Hier ist ein weiterer Thread mit demselben Problem wie bei Ihnen in stackoverflow. String oder Binärdaten würden abgeschnitten werden

Hoffe das wird helfen. Grüße