7

我对sql知之甚少,谁能给我更深入的解释(或参考)这个异常意味着什么?

- 更新

要添加到 VARCHAR 中的数据是:

30819f300d06092a864886f70d010101050003818d00308189028181008942f81b3ae99e5f66dbc92cb971366f513c056e0bd6557c021058f6892d3a648230959c95378969f6dcb63046431fc0d39799789d307f96c811ae3836e43075e8cf21af84ce84f1e9c68773c9fbf03149f40248797a92562d55698dc7dce9f840bad0dfb47ccb982a2f015461cd5d38a3d6d75b349ce0bd89e3535ee8091ce70203010001

其中有 325 个字符。

我的 VARCHAR 大小为 330,并抛出此异常:

SQL 异常:尝试将 VARCHAR '30820276020100300d06092a864886f70d0101010500048202603082025c&' 缩小到 330 时遇到截断错误。

(请注意,错误消息中指定的 VARCHAR 与我尝试插入的 VARCHAR 不同,我不知道为什么)

如您所见,鉴于此大小,我的数据不能比 VARCHAR 大。

可能有什么问题?

- 成立

在准备 SSCCE 时,我意识到我在错误的位置插入了错误的数据.. XD

4

2 回答 2

6

这意味着您的 VARCHAR 字段(可变长度字符串字段)的长度为 X,例如 100,而您尝试插入的数据长度超过 100 个字符。

SQL Server 不会在 varchar 字段的最大长度处自动截断您的数据 - 您必须确保自己插入的数据不会超过该字段可以容纳的数据。

于 2010-05-18T16:02:16.320 回答
0

尝试使用 CONVERT (data_type[(length)], expression [, style])减少查询中的长度

于 2010-05-18T16:04:39.780 回答