将截断字符串或二进制数据 问题,在线等

我写一个insert语句,提示"将截断字符串或二进制数据",我查了一下以为是长度问题,我就把那个字段的[varchar]调大(类型也对的,其它字段也没有问题),但是还是出... 我写一个insert语句,提示"将截断字符串或二进制数据",我查了一下以为是长度问题,我就把那个字段的[varchar]调大(类型也对的,其它字段也没有问题),但是还是出现这个提示,还有什么方面可能引起这个问题呢?
拜托帮帮我,谢谢~
我刚发现有个触发器,把代码贴出来,大家帮看这里有没有问题.(要插入的字不超过varchar(20))
CREATE TRIGGER dbo.T_ZXSMS_Utg ON dbo.T_ZXSMS
FOR insert
AS
if (@@rowcount>0)
begin
declare @CALLERID varchar(20),
@CALLEDID varchar(20),
@MEM varchar(200),
@TIM varchar(20)

declare update_cursor scroll cursor for select CALLERID,CALLEDID,MEM,TIM from

inserted
open update_cursor
FETCH first FROM update_cursor into @CALLERID,@CALLEDID,@MEM,@TIM
WHILE @@FETCH_STATUS = 0
begin

if (left(@CALLERID,1)<>'8' )
begin
insert into T_ZXSMS_Bak(CALLERID ,CALLEDID,MEM,TIM)

values(@CALLERID ,@CALLEDID,@MEM,@TIM)

end

FETCH NEXT FROM update_cursor into @CALLERID ,@CALLEDID,@MEM,@TIM
end
CLOSE update_cursor
DEALLOCATE update_cursor
end
展开
 我来答
WHITE_WIN
2008-01-31 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1913万
展开全部
没有了,只有加长或加大字段.
你可以求一下要插入的字符类变量的长度.
或直接将要插入的查询用下列语句直接建立一个临时表,检查临时表与原表的差异.
SELECT INSERTFIELD1,INSERTFIELD2 ... INTO 临时表 from xxxx

SELECT @INSERTvar1,@INSERTvar2 ... INTO 临时表
如果自动生成字段的数据容量大于原表数据容量,再对该字段进行重点检查即可
hotyxm
2008-01-31 · TA获得超过1028个赞
知道大有可为答主
回答量:1698
采纳率:50%
帮助的人:1192万
展开全部
字符长度不够,可以用len看一下你插入的字符串的长度,然后再调整数据类型!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晗_寒
2008-01-31 · TA获得超过137个赞
知道答主
回答量:77
采纳率:0%
帮助的人:0
展开全部
额,因为没有看到你的代码,所以不知道怎么分析。
一般将截断字符串或二进制数据错误是指你所INSERT的内容超过了你先前定的大小。

所以我估计:
1.你是否values 后面添加的值和你的列一一对应,麻烦你仔细检查下。
2.检查下你的字符型是否加了'',是否超过了最大范围...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式