再次重新使用Deallocated Cursor进行删除

时间:2013-10-13 09:48:26

标签: sql-server-2008 cursor

我已经声明了一个Cursor,它会抓取我在特定月份创建的所有Ticket ID,并且我正在使用它进行插入。

一旦Insertion成功,我将取消分配游标并提交事务。

- >>现在我想根据Success消息删除记录。比如ifa messaage ='Success',然后删除。

但问题是我必须将Ticket Ids传递给删除。


DECLARE @Tickets CURSOR 开始交易插入;

    SET @Tickets= CURSOR READ_ONLY FOR SELECT TICKET_ID FROM TICKETMASTER

然后INSERT查询我在哪里传递Ticket Ids以在表中插入

打开@Tickets 关闭@Tickets DEALLOCATE @Tickets SET @ message ='SUCCESS'

COMMIT TRANSACTION INSERTION;

现在我开始另一个删除交易

BEGIN TRANSACTION DELETION;

这里我想再次删除我在@message成功时插入的行,并且我必须将Ticket ID传递给删除。

喜欢从TICKETMASTER删除TICKET_ID = @tickets

-

我不想再次设置光标来获取票证ID。想再次打开就可以使用相同的@tickets Cursor进行删除。

我已取消分配@tickets游标,所以我可以通过提供

再次重复使用它

打开@tickets 如果(消息=“成功”) 从TICKETMASTER中删除TicketId = @tickets

1 个答案:

答案 0 :(得分:0)

您可以从Ticketmaster中选择ticketid到#temptable,并将其用作两个游标的源。或者您可以在同一光标体中执行插入和删除操作。