对@@ FETCH_STATUS进行测试会删除其他变量

时间:2015-04-29 11:17:47

标签: sql sql-server cursor fetch

我在表格上使用滚动游标,用户名和每行的其他信息。我需要检测用户的变化,所以我知道我到目前为止的所有信息都可以发送给一个用户,从这一点到另一个用户......

它工作正常,但当我在表中只有一个用户时:

User1|something1|something1
User1|something2|something2
User1|something3|something3

我需要检测结束,我这样做了:

declare @cr cursor scroll for select etc...
fetch first from cr into ...
while @@Fetch_Status=0 begin
... Collect data
/*Here is the problem*/
Fetch next into ...
/* some collected data from cursor here still exists (lets call them @data)*/
   if @@FETCH_STATUS=-1 begin
       -- Here are @Data = null
   end
end

我不明白为什么会这样。换句话说,我需要知道这是一切都消失之前的最后一行。谢谢

1 个答案:

答案 0 :(得分:0)

虽然循环很好。将varchar与null连接是罪魁祸首。此外,我的varchar太大,无法在结果或消息窗口中显示MSSMS。