一个存储过程的问题。

li1229363 2007-03-27 10:32:25
CREATE PROCEDURE update_shop_pd_info
@pd_lb_self bigint ,
@pdname varchar(50),
@pdjj varchar(50),
@pdtime varchar(50),
@pdprice float,
@pdhyprice float,
@kcqk varchar(200),
@pddj varchar(50),
@pdimg varchar(1500),
@zysx varchar(100),
@pdcontent varchar(7000),
@ispl tinyint,
@proid varchar(50),
@orderby int,
@isstop tinyint,
@slc varchar(5),
@pdtype varchar(3000),
@news tinyint,
@istj tinyint,
@pdarea varchar(100),
@pdtype1 varchar (100),
@dw varchar(10),
@id bigint,
@revinfo varchar(100) output
as
set nocount on
begin
--declare @a varchar(100)
select * from shop_pd_info where pdname=@pdname and proid=@proid and id<>@id
if @@rowcount>0
begin
set @revinfo='出错!商品名称发生重复!'
return 1
end
else
begin
begin transaction
update shop_pd_info set pdname=@pdname ,pd_lb_self=@pd_lb_self,pdjj=@pdjj ,pdtime=@pdtime,pdprice=@pdprice,pdhyprice=@pdhyprice ,pdkc=@kcqk,pddj=@pddj ,pdimg=@pdimg, zysx=@zysx ,pdcontent=@pdcontent ,ispl=@ispl,orderby=@orderby,isstop=@isstop,slc=@slc,pdtype=@pdtype,new=@news,istj=@istj,pdtype1=@pdtype1,pdarea=@pdarea,dw=@dw where proid=@proid and id=@id
if @@error<>0
begin
rollback transaction;
set @revinfo='出错!在更新商品信息过程中发生错误,请检查所填写信息是否合法!';
return 1
end
else
begin
commit transaction
return 0
end
end
end
GO


就这个东西,反正是执行不了,郁闷到我要挂了……

错误提示:
Microsoft OLE DB Provider for SQL Server 错误 '80040e07'

将数据类型 bigint 转换为 tinyint 时出错。


对MSSQL不熟,主要使用了MySQL……唉~
...全文
334 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
li1229363 2007-04-05
  • 打赏
  • 举报
回复
问题一直没有解决,不过使用严格的UPDATE语句完成了上面的操作。郁闷到家了……谢谢大伙帮忙
kourr2004 2007-03-28
  • 打赏
  • 举报
回复
楼主按照下面这样的写法执行一下看看,表名我没改,参数也没改,你自己试一下看看,这是我原来写的(sybase数据库):
EXECUTE('UPDATE ywsjk..YYFYJLB'+@vhg_yf+' SET jlsx=''1'' WHERE ywlsh=RTRIM('''+ @Iywlsh +''')')
IF @@ERROR!=0
BEGIN
ROLLBACK TRAN
SELECT @Oresult="1",@Omsg='回滚费用记录表失败!'
RETURN
END
bsh_ly 2007-03-28
  • 打赏
  • 举报
回复
字段类型如果没错的话
那就看看是不是
这个字段的
某条记录的值 是不对的

或者全改成bigint 试试
li1229363 2007-03-27
  • 打赏
  • 举报
回复
嗯,检查了,我从执行存储过程开始进行的检查,然后我又检查了数据库里面的数据类型定义。都没有什么类型不对应的问题啊


重点啊!insert的存储过程没有问题的说……怎么update的就有问题?
paoluo 2007-03-27
  • 打赏
  • 举报
回复
檢查下有關tinyint類型的字段
li1229363 2007-03-27
  • 打赏
  • 举报
回复
给我的感觉,好像是没有运行语句的时候,就出了问题了

按照错误信息来说,应该是我在定义变量的时候,把tinyint定义成了bigint了。但是,我在定义bigint的时候,只有两个字段。二这个两个字段都是与ID有关的,并没有和什么鬼tinyint有关啊~
li1229363 2007-03-27
  • 打赏
  • 举报
回复
一致……
T_T
这个我都对照了N次了,对于insert的存储过程来说,声明的变量部分是一样的。我那个郁闷啊!insert的存储过程一点问题都没有,但是这个update的……
paoluo 2007-03-27
  • 打赏
  • 举报
回复
檢查下shop_pd_info表中的字段類型和上面定義的變量名的類型是否一致?
li1229363 2007-03-27
  • 打赏
  • 举报
回复
唉~不是吧?没有人帮我下么?

唉~使用updatee(直接使用command执行的)已完成上面的问题。但是,谁能帮我弄下这个存储过程??

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧