重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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
要先备份一下日志,日志就自动截断了。
如果要清空,以前有 truncate_only,2008之后好象没有了。切换到简单模式,然后再切换回完全模式。
可以参考下面的代码:
select substring('ADFASDFD(DASFADSFAS)',1,charindex('(','ADFASDFD(DASFADSFAS)')-1)
主要用到两个函数,一个charindex,这个是判断指定字符位置的函数。
另一个是substring,这个是截取字符串的函数。
扩展资料:
sqlserver参考函数
upper(char_expr) 转为大写
lower(char_expr) 转为小写
space(int_expr) 生成int_expr个空格
reverse(char_expr) 反转字符串
stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从
参考资料来源:百度百科-SqlServer
提示很清楚了,去数据库中找一下就OK了。
看看列的长度限制,比如varchar(50)这种,很容易就超出,然后就会出现截断字符串这种错误。
可以把insert/update的语句Write出来,然后看看哪个列有超出长度的嫌疑。