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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver插入语句报“将截断字符串或二进制数据”怎么解决,怎么回事?相关的知识,希望对你有一定的参考价值。

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

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>
参考技术A 你插入的数据中有一些已经超过了你数据库中定义类型能容纳的长度。检查一些你的表结构,适当扩充。 参考技术B 一般是由于字符长度超出字段的设置长度

sql server,将截断字符串或二进制数据,如何知道出错在哪个字段?

直接在程序中找有时是很难的,有没有进一步的消息可查?
SQLServer难道不能指出是哪个栏位吗?
必须从系统找线索,人工找不符合本题意义。

参考技术A 提示很清楚了,去数据库中找一下就OK了。
看看列的长度限制,比如varchar(50)这种,很容易就超出,然后就会出现截断字符串这种错误。
可以把insert/update的语句Write出来,然后看看哪个列有超出长度的嫌疑。

以上是关于sqlserver插入语句报“将截断字符串或二进制数据”怎么解决,怎么回事?的主要内容,如果未能解决你的问题,请参考以下文章

SQL sever 中的警告“将截断字符串或二进制数据 语句已终止” 是啥意思啊? 我是刚学这个的?懂的帮帮我

sql server,将截断字符串或二进制数据,如何知道出错在哪个字段?

把表A 数据插入表B时提示 ‘将截断字符串或二进制数据。 语句已终止’ 。如何找到被截断数据或字段。

com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。

将截断字符串或二进制数据。语句已终止。

SQLServerException:将截断字符串或二进制数据的解决方法