目前,在我的存储过程中,我正在为下面的情况使用游标。我所知道的是我们需要尽量避免使用游标。
所以,我把这里的情况发给你,可以帮我解决这个问题。
对于步骤2-5中的业务,我们如何使用游标创建存储过程?
我希望你能给我解决这个问题的建议。
发布于 2012-08-17 09:08:36
谁说你需要避免使用游标?
提供游标是有原因的,在某些情况下,您必须使用游标或使用某种编程语言获取记录和处理逻辑。
如果希望每个记录成功或失败,即使在存储过程中,在数据库中,也需要一个游标。(是的,有插入后触发器,但这只会使您的逻辑变得复杂)
发布于 2012-08-17 09:10:11
在高级别上,您可以这样做(我在表B中添加了一个insertDate,因为我认为更新是必要的)
首先,将tableA中的数据插入tableB:
insert into tableB (ID, column1, column2, insertDate)
select ID, callFunction1(userID), callFunction2(userID), getdate()
然后,对于插入的记录,设置status=1
update tableA
set status=1
where ID in (select ID from tableB where insertDate=today)
现在,返回消息类型有点复杂,您不能返回每一行的消息,如果其中任何一个“失败”,整个批处理都会失败。
在你的情况下什么会导致失败?
https://stackoverflow.com/questions/12002674
复制相似问题