我正在使用游标并在T-SQL中成功执行,我使用的数据库是Microsoft SQL Server 2005.
我的查询是在执行光标后,输出显示在消息区域中。当我使用deallocate <cursor name>
解除分配游标时,它会被释放。我再次执行我的光标。现在在消息区域我得到了这个:
“命令已成功完成”
我没有得到光标的输出。为了解决这个问题,我复制了游标代码并打开了一个新的查询区域并粘贴在那里。它第一次完美无缺。当我重新运行光标时,消息区域中会显示相同的消息。
如何在同一窗口中重新执行相同的游标代码而不是创建新的SQL窗口?
答案 0 :(得分:1)
如果没有看到你的代码,很难说出错是什么,但我知道游标是最后的代码,通常可以通过使用其他方法以更少的代码和更快的性能来完成。请参阅此链接,了解更好地处理任务的方法:
http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them
答案 1 :(得分:1)
您正在执行更改状态。这意味着什么,我无法告诉你实际上看不到你的代码。但是,当您第一次执行代码时,您的数据库和会话处于一种状态,而当您再次执行代码时,它们处于不同的状态。它可能像非平衡交易一样简单。第二次,在新状态下,游标可能不会选择任何内容,或者您的代码采用完全不同的IF分支并且不执行任何游标。没有代码,不可能确切地说出数据库/会话状态的区别。