再次重用 Deallocated Cursor 进行删除
Posted
技术标签:
【中文标题】再次重用 Deallocated Cursor 进行删除【英文标题】:Reusing Deallocated Cursor again for deletion 【发布时间】:2013-10-13 09:48:26 【问题描述】:我已经声明了一个游标,它可以获取我在特定月份创建的所有票证 ID,并且我正在使用它进行插入。
一旦插入成功,我将释放光标并提交事务。
-->>现在我想根据成功消息删除记录。比如如果 message = 'Success',则删除。
但问题是我必须传递该票证 ID 才能删除。
声明@Tickets CURSOR 开始交易插入;
SET @Tickets= CURSOR READ_ONLY FOR SELECT TICKET_ID FROM TICKETMASTER
然后 INSERT 查询我在哪里传递票证 ID 以插入到表中
打开@Tickets 关闭@Tickets 取消@Tickets 设置@message='成功'
提交事务插入;
现在我正在开始另一个删除事务
开始交易删除;
这里我想再次删除我插入的行,只有当@message 成功并且我必须传递 Ticket id 才能删除。
like 从 TICKETMASTER 中删除,其中 TICKET_ID = @tickets
--
我不想再次设置光标来获取票证 ID。想要使用相同的@tickets 光标进行删除,只需再次打开即可。
我已经解除了@tickets 游标的分配,所以我可以通过提供再次使用它吗
打开@tickets 如果(消息='成功') 从 TICKETMASTER 中删除其中 TicketId = @tickets
【问题讨论】:
【参考方案1】:您可以从 Ticketmaster 中将 ticketid 选择到 #temptable 中,并将其用作两个游标的来源。或者您可以在同一个光标主体内同时执行插入和删除操作。
【讨论】:
以上是关于再次重用 Deallocated Cursor 进行删除的主要内容,如果未能解决你的问题,请参考以下文章
RxSwift之深入解析特殊序列deallocating与deallocated的源码实现
线程 1:EXC_BREAKPOINT CALayer removeAllAnimations 消息发送到 deallocated
MSSQL优化(TUNING&OPTMIZATION&优化)之——计划重用(plan reusing)
-[UIKeyboardLayoutStar release]: message sent to deallocated instance