大家看看这个存储过程有什么问题了!

tshulinzi 2004-11-03 11:17:50
CREATE PROCEDURE insertstore
(
@number nvarchar(10),
@amount int
)
AS
select number,amount as num from table_store where number=@number

if(@@Rowcount>0)

insert into table_store
values
(
@number,
amount=(num+@amount)
)

else

insert into table_store
values
(
@number,
@amount
)
return
GO
...全文
79 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
reddg 2004-11-03
  • 打赏
  • 举报
回复
declare @num int
set @num=0
select @num=amount from table_store where number=@number
insert into table_store
values
(
@number,
@num+@amount
)
白云在上 2004-11-03
  • 打赏
  • 举报
回复
不懂楼主什么目的。但以下这句,如果 number是主键的话,将出错。
if(@@Rowcount>0)
insert into table_store
values
(
@number,
amount=(num+@amount)
)

猜想楼主是要实现以下目的吧:
if(@@Rowcount>0)
update table_store set amount=amount + @amount where number=@number
tshulinzi 2004-11-03
  • 打赏
  • 举报
回复
上面的不行!
gaoxiaospring 2004-11-03
  • 打赏
  • 举报
回复
修改一下:
CREATE PROCEDURE insertstore
(
@number nvarchar(10),
@amount int
)
AS

declare num int

select num=amount from table_store where number=@number

if(@@Rowcount>0)

insert into table_store
values
(
@number,
amount=(num+@amount)
)

else

insert into table_store
values
(
@number,
@amount
)
return
GO
shuker 2004-11-03
  • 打赏
  • 举报
回复
insert into table_store
values
(
@number,
amount=(num+@amount)//这里不对
)
gaoxiaospring 2004-11-03
  • 打赏
  • 举报
回复
/*****************
insert into table_store
values
(
@number,
amount=(num+@amount)
)
*****************/

num的值是多少?在上面一句select中并没有保存这个值。

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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