【发布时间】:2010-08-31 12:19:27
【问题描述】:
我有一个问题。我正在研究游标。每次,在获取最后一条记录并打印其数据后,游标会打印一个附加行。要理解我的意思,请考虑以下示例: 我只想打印关于 10 个客户的信息。
USE Northwind
GO
DECLARE myCursor CURSOR
FOR SELECT TOP(10) ContactName FROM Customers
DECLARE @RowNo int,@ContactName nvarchar(30)
SET @RowNo=1
OPEN myCursor
FETCH NEXT FROM myCursor INTO @ContactName
PRINT LEFT(CAST(@rowNo as varchar) + ' ',6)+' '+ @ContactName
SET @RowNo=@RowNo+1
SET @ContactName=''
WHILE @@FETCH_STATUS=0
BEGIN
FETCH NEXT FROM myCursor INTO @ContactName
PRINT + LEFT(CAST(@rowNo as varchar) + ' ',6)+' '+ @ContactName
SET @RowNo=@RowNo+1
SET @ContactName=''
END
CLOSE myCursor
DEALLOCATE myCursor
现在看看输出:
1 Maria Anders
2 Ana Trujillo
3 Antonio Moreno
4 Thomas Hardy
5 Christina Berglund
6 Hanna Moos
7 Frédérique Citeaux
8 Martín Sommer
9 Laurence Lebihan
10 Elizabeth Lincoln
11
第 11 行也已打印。它是光标中的问题还是总是发生? 有没有办法不打印这个添加数据?谢谢 (我使用 sql erver 2008)
【问题讨论】:
标签: sql-server sql-server-2008 cursors