SQL存储过程

HappyKeKe 2009-06-19 10:28:14
高手帮忙看下,我下面的存储过程要在哪里设置回滚点?咋写?

use bookManage
go
create proc addBooks_pro
@ISBN varchar(30),
@name varchar(40),
@publisher Varchar(40),
@p float,
@num int,
@bookBusiness varchar(40),
@t varchar(20)
as
if exists(select * from book_now_num where bookID=@ISBN)
begin

update book_now_num set nowNum=nowNum+@num where bookID=@ISBN
insert into books(bookID,amount,byfrom,time) values(@ISBN,@num,@bookBusiness,@t)
end

else
begin

insert into book_now_num values(@ISBN,@num)
insert into bookInfo values(@ISBN,@name,@publisher,@p)
insert into books(bookID,amount,byfrom,time) values(@ISBN,@num,@bookBusiness,@t)
end
go
...全文
36 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
HappyKeKe 2009-06-24
  • 打赏
  • 举报
回复
哪位仁兄给我看看啊???
HappyKeKe 2009-06-22
  • 打赏
  • 举报
回复
use bookManage
go
create proc addBooks_pro
@ISBN varchar(30),
@name varchar(40),
@publisher Varchar(40),
@p float,
@num int,
@bookBusiness varchar(40),
@t varchar(20)
as
savepoint:mark;
if exists(select * from book_now_num where bookID=@ISBN)
begin

update book_now_num set nowNum=nowNum+@num where bookID=@ISBN
insert into books(bookID,amount,byfrom,time) values(@ISBN,@num,@bookBusiness,@t)
end

else
begin

insert into book_now_num values(@ISBN,@num)
insert into bookInfo values(@ISBN,@name,@publisher,@p)
insert into books(bookID,amount,byfrom,time) values(@ISBN,@num,@bookBusiness,@t)
end

EXCEption
rollback to mark;
go



这样吗?不对啊???
星火燎猿 2009-06-21
  • 打赏
  • 举报
回复
还差一种可能啊..
hshuang 2009-06-21
  • 打赏
  • 举报
回复
savepoint:mark;

if(){
....
}else{
....

}
EXCEption
rollback to mark;
HappyKeKe 2009-06-21
  • 打赏
  • 举报
回复
咋写?
qiheia 2009-06-21
  • 打赏
  • 举报
回复
你绝的哪里会失败就在哪里进行回滚就可以了。。。
linuxlsx 2009-06-21
  • 打赏
  • 举报
回复
我觉得 应该在if的前面设置回滚点。 进入if了的话就会修改数据库了。

怎么设置还不知道啊, 记着 下次再来看答案
Defonds 2009-06-19
  • 打赏
  • 举报
回复
mark

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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