SQL SERVER 字符超长时报错:将截断字符串或二进制数据。LEN&DATALENGTH
当出现这种错误时,代表字符长度超出了表字段允许的最大长度。
就需要查看是哪个字段超长了。
如果表字段类型为char / varchar:
1、字符内容不包含中文,那么既可以使用 len,也可以使用 datalength 来检测字符的长度
2、字符内容包含中文,那么则需要使用 datalength 来检测字符的长度
if object_id('t') is not null drop table t; create table t(col varchar(2)) insert t values('中') --能正常插入 insert t values('中a') --报错:将截断字符串或二进制数据
如果表字段类型为 nchar / nvarchar: 那么 则需要使用 LEN 来检测字符的长度。
if object_id('t') is not null drop table t; create table t(col nvarchar(1)) insert t values('ab')
以上代码会报错:将截断字符串或二进制数据。

浙公网安备 33010602011771号