2012-03-28 5 views
1

ich SQL Server bin mit 2000. Wenn ich versuche, eine Spalte des Typs zu aktualisieren varchar(20) mit einem Textwert von mehr als 10 Zeichen, bekomme ich einen FehlerSpalt nicht, wenn versucht, die Aktualisierung einen Wert vom Typ varchar zu aktualisieren

Zeichenfolge oder Binärdaten werden abgeschnitten.

Warum ist das? varchar(20) sollte einen Text von bis zu 20 Zeichen akzeptieren ... Warum kann ich ihn nicht mit Text mit mehr als 10 Zeichen aktualisieren?

+3

Können Sie SQL-Code mit dem Beispieltextwert, den Sie aktualisieren möchten, eingeben? – cctan

+0

Möglicherweise gibt es einige Steuerzeichen in Ihrem String ... hast du richtig geprüft ..? – Teja

Antwort

5

Wenn Ihr String-Variable als nvarchar(n) deklariert wird, dann wird es doppelt so viel Platz wie ein So varchar(n)

10 x 2 = 20 

nehmen, etwas mehr als 10 Double-Byte-Zeichen werden nicht in einem Anfall varchar(20)

Wenn Sie eine Spalte vom Typ varchar einfügen/aktualisieren, deklarieren Sie auch Ihre String-Variable als varchar mit der entsprechenden Größe.

declare @str varchar(20) 
Verwandte Themen