我正在使用将返回 4 个值(18、13、14 和 15)的 select 语句创建一个游标。我正在尝试遍历光标并暂时显示该值。我期待 4 个打印语句,但我看到的远不止这些。
这是代码:
PRINT '***** *****'
GO
DECLARE curs CURSOR FOR
SELECT ID FROM CUSTOMER WHERE SSN LIKE '%1803'
GO
DECLARE @ID int
OPEN curs
FETCH NEXT curs INTO @ID
WHILE @@sqlstatus = 0
BEGIN
PRINT '* current value: %1! ', @ID
FETCH NEXT curs INTO @ID
END
CLOSE curs
DEALLOCATE CURSOR curs
GO
这是输出:
***** *****
* current value: 18
* current value: 18
* current value: 13
* current value: 18
* current value: 13
* current value: 14
* current value: 18
* current value: 13
* current value: 14
* current value: 15
* current value: 18
* current value: 13
* current value: 14
* current value: 15
这似乎是一个简单的游标迭代,我不明白为什么我看到这么多打印语句,我只想看到 18、13、14 和 15。我使用的是 Sybase ASE 15.5 和 Razor SQL 客户端。有人可以帮我弄这个吗?
* 编辑 * 我在使用 Sybase Central(用于 ASE)时没有看到这个问题。当我使用其他 IDE 时,结果不一致。