@@FETCH_STATUS 上的测试删除其他变量

Test on @@FETCH_STATUS deletes other variables

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

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

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

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

While循环没问题。将 varchar 与 null 连接起来是罪魁祸首。此外,我的 varchar 太大,MSSMS 无法在结果或消息中显示 windows。