当列长度足够时,SQL Server截断错误

时间:2012-07-02 10:37:54

标签: sql sql-server sql-server-2008

我在SQL Server 2008中有一个表
表名:tbl_device
表结构:

Column  | Type
col1    | nvarchar(200)

现在,当我尝试向此插入数据时(它适用于较短的情况但是)并且字符串数据很长,即 LEN功能是162

服务器仍然提供错误:

Msg 8152, Level 16, State 4, Line 1
String or binary data would be truncated.

应该是什么原因?

2 个答案:

答案 0 :(得分:3)

字符串中存在生成错误消息的尾随空白但不使用len()函数计算它们。

答案 1 :(得分:-1)

Nvarchar 将每个字符存储在 2 个字节中。所以你的 nvarchar(200) 只能存储 100 个字符。一些视图以字符为单位列出长度,而其他视图以字节为单位列出长度。

简单来说。有关其工作原理的详细信息,请参阅:

nchar and nvarchar (Transact-SQL)