sqlserver插入语句报“将截断字符串或二进制数据”怎么解决,怎么回事?

2025-03-23 11:50:03
推荐回答(3个)
回答1:

INSERT 语句中, 字符串长度超过列的长度了。
下面是一个重现的例子:
表里面 t 列长度为 varchar(10), 当你插入字符长度大于 10 的时候, 就要这个错误信息。

1> create table #test( t varchar(10) )
2> go

1> insert into #test values( '1234567890' )
2> go

(1 行受影响)

1> insert into #test values( '12345678901' )
2> go
消息 8152,级别 16,状态 14,服务器 TEST-PC\SQLEXPRESS,第 1 行
将截断字符串或二进制数据。
语句已终止。
1>

回答2:

你插入的数据中有一些已经超过了你数据库中定义类型能容纳的长度。检查一些你的表结构,适当扩充。

回答3:

一般是由于字符长度超出字段的设置长度