将截断字符串或二进制数据 问题,在线等
我写一个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 展开
拜托帮帮我,谢谢~
我刚发现有个触发器,把代码贴出来,大家帮看这里有没有问题.(要插入的字不超过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 展开
3个回答
展开全部
字符长度不够,可以用len看一下你插入的字符串的长度,然后再调整数据类型!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额,因为没有看到你的代码,所以不知道怎么分析。
一般将截断字符串或二进制数据错误是指你所INSERT的内容超过了你先前定的大小。
所以我估计:
1.你是否values 后面添加的值和你的列一一对应,麻烦你仔细检查下。
2.检查下你的字符型是否加了'',是否超过了最大范围...
一般将截断字符串或二进制数据错误是指你所INSERT的内容超过了你先前定的大小。
所以我估计:
1.你是否values 后面添加的值和你的列一一对应,麻烦你仔细检查下。
2.检查下你的字符型是否加了'',是否超过了最大范围...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |