Cursor MSSQL Tutorial

5>  CREATE TABLE Orders (
6>      OrderID int NOT NULL ,
7>      CustomerID nchar (5) NULL ,
8>      EmployeeID int NULL ,
9>      OrderDate datetime NULL ,
10>     RequiredDate datetime NULL ,
11>     ShippedDate datetime NULL ,
12>     ShipVia int NULL ,
13>     Freight money NULL DEFAULT (0),
14>     ShipName nvarchar (40) NULL ,
15>     ShipAddress nvarchar (60) NULL ,
16>     ShipCity nvarchar (15) NULL ,
17>     ShipRegion nvarchar (15) NULL ,
18>     ShipPostalCode nvarchar (10) NULL ,
19>     ShipCountry nvarchar (15) NULL
20> )
21> GO
1>
2>
3> INSERT INTO Orders VALUES (10248,'1',5,'7/4/1996','8/1/2001','7/16/2001',3,32.38,'V','A','R',        NULL,N'51100','France')
4> go
(1 rows affected)
1>
2>
3>    CREATE PROCEDURE spCursorScroll
4>    AS
5>    DECLARE @Counter      int,
6>            @OrderID      int,
7>            @CustomerID   varchar(5)
8>    DECLARE CursorTest cursor
9>    LOCAL
10>    SCROLL
11>    FOR
12>       SELECT OrderID, CustomerID
13>       FROM Orders
14>    SELECT @Counter = 1
15>    OPEN CursorTest
16>    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
17>    PRINT 'Row ' + CONVERT(varchar,@Counter) + ' has an OrderID of ' +
18>          CONVERT(varchar,@OrderID) + ' and a CustomerID of ' + @CustomerID
19>    WHILE (@Counter<=5) AND (@@FETCH_STATUS=0)
20>    BEGIN
21>          SELECT @Counter = @Counter + 1
22>          FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
23>          PRINT 'Row ' + CONVERT(varchar,@Counter) + ' has an OrderID of ' +
24>          CONVERT(varchar,@OrderID) + ' and a CustomerID of ' + @CustomerID
25>    END
26>    WHILE (@Counter>1) AND (@@FETCH_STATUS=0)
27>    BEGIN
28>          SELECT @Counter = @Counter - 1
29>          FETCH PRIOR FROM CursorTest INTO @OrderID, @CustomerID
30>          PRINT 'Row ' + CONVERT(varchar,@Counter) + ' has an OrderID of ' +
31>          CONVERT(varchar,@OrderID) + ' and a CustomerID of ' + @CustomerID
32>    END
33>
34>    CLOSE CursorTest
35>    DEALLOCATE CursorTest
36>    GO
1>
2>    drop PROCEDURE spCursorScroll;
3>    GO
1>
2>    drop table Orders;
3>    GO