@@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。
我在 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。