尝试更新varchar类型的值时,列不会更新

时间:2012-03-28 03:20:54

标签: sql sql-server

我正在使用SQL Server 2000.当我尝试更新文本值超过10个字符的varchar(20)类型的列时,出现错误

  

字符串或二进制数据将被截断。

为什么? varchar(20)应接受最多20个字符的文字...为什么我不能使用超过10个字符的文字进行更新?

1 个答案:

答案 0 :(得分:5)

如果您的字符串变量声明为nvarchar(n),那么它将占用varchar(n)

的两倍空间
10 x 2 = 20

因此,任何大于10个双字节字符的内容都不适合varchar(20)

如果要插入/更新varchar类型的列,还要将字符串变量声明为varchar,并使用适当的大小。

declare @str varchar(20)