INSERT 语句中, 字符串长度超过列的长度了。
我们提供的服务有:成都网站设计、成都做网站、微信公众号开发、网站优化、网站认证、新建ssl等。为上1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的新建网站制作公司
下面是一个重现的例子:
表里面 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之后好象没有了。切换到简单模式,然后再切换回完全模式。
with [user](userid,name,age,medal) as
( select 100001, '张三', 20, '万元户 实名认证 宠物达人'
union all select 100002, '李四', 30, '实名认证')
,
t as (select userid,cast(null as varchar(100)) medal,medal s from [user]
union all
select userid,
cast(case when charindex(' ', s)0 then left(s, charindex(' ',s)-1) else s end as varchar(100)),
case when charindex(' ', s)0 then right(s, len(s)-charindex(' ',s)) end
from t
where s is not null
)
select userid,medal from t where medal is not null order by userid
可以参考下面的代码:
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