1

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

专栏 | 类型
col1 | nvarchar(200)

现在,当我尝试将数据插入其中时(它适用于较短的情况,但是)并且字符串数据很长,即使用 LEN 函数它是 162

服务器仍然给出错误:

消息 8152,第 16 层,状态 4,第 1 行
字符串或二进制数据将被截断。

应该是什么原因?

4

2 回答 2

3

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

于 2012-07-02T13:48:05.327 回答
-1

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

就是这么简单。有关其工作原理的详细信息,请参阅:

nchar 和 nvarchar (Transact-SQL)

于 2021-02-09T15:23:27.620 回答