SQLServer2005数据库中的游标

SQLServer2005数据库中的游标,sql,sql-server,sql-server-2005,cursor,Sql,Sql Server,Sql Server 2005,Cursor,我正在使用游标并在T-SQL中成功执行,我使用的数据库是Microsoft SQL Server 2005 我的查询是在执行游标之后,输出显示在消息区域中。当我使用deallocate取消分配光标时,它将被取消分配。我再次执行游标。现在,在消息区域中,我看到: “命令已成功完成” 我没有得到光标的输出。为了解决这个问题,我复制了光标代码,打开了一个新的查询区域并粘贴到那里。这是第一次完美地工作。当我重新运行光标时,相同的消息显示在消息区域中 如何在同一窗口中重新执行相同的游标代码,而不是创建新的

我正在使用游标并在T-SQL中成功执行,我使用的数据库是Microsoft SQL Server 2005

我的查询是在执行游标之后,输出显示在消息区域中。当我使用deallocate
取消分配光标时,它将被取消分配。我再次执行游标。现在,在消息区域中,我看到:

“命令已成功完成”

我没有得到光标的输出。为了解决这个问题,我复制了光标代码,打开了一个新的查询区域并粘贴到那里。这是第一次完美地工作。当我重新运行光标时,相同的消息显示在消息区域中


如何在同一窗口中重新执行相同的游标代码,而不是创建新的SQL窗口?

如果看不到您的代码,很难说是什么错误,但我知道游标是最后的代码,通常可以使用其他方法以更少的代码和更快的性能完成。有关处理任务的更好方法的想法,请参见此链接:


您正在更改执行状态。这意味着,我不能告诉你w/o是否真的看到了你的代码。但是,当您第一次执行代码时,数据库和会话处于一种状态,而当您再次执行代码时,则处于不同的状态。它可以是像不平衡交易这样简单的事情。第二次,在新状态下,游标可能不选择任何内容,或者代码采用完全不同的IF分支,并且不执行任何游标。没有代码,无法确切地说出数据库/会话状态的区别。

请尽量不要使用游标。实际上需要使用它们的任务很少……你能发布一些示例代码吗?这是我的游标代码我的数据库名是练习让表employee和字段declare cur cursor从employee open cur中选择eid、ename、sal,而@fetch\u status=0 begin declare@empid int declare@empname varchar(20)声明@empsal money fetch next from cur into@empid、@empname、@empsal select@empid、@empname、@empsal end close curhere是我的游标代码我的数据库名正在练习让一个表雇员具有字段declare cur cur cursor for select eid、ename、,当@fetch\u status=0开始声明@empid int declare@empname varchar(20)声明@empsal money fetch next from cur进入@empid,@empname,@empsal select@empid,@empname,@empsal end close cur deallocate cur这是我的游标代码我的数据库名正在练习让一个表雇员从employee open cur中为select eid、ename、sal声明cur cur,而@@fetch_status=0 begin declare@empid int declare@empname varchar(20)declare@empsal MENY fetch next from cur进入@empid、@EMPNAMNAME、,@皇帝选择@empid、@empname、@empsal end close cur解除分配cur