I&#039;ve been passed along a stored procedure for SQL 7 that uses cursors for fetching data. Currently, the SP fetches one row at a time, and does X fetches, where X is specified by the user. I&#039;m trying to re-write the SP so that I can fetch X rows using a single FETCH command, instead of fetching 1 row for X number of times. I know MySQL has a BLOCK cursor type that allows this, but I can&#039;t seem to find any information within SQL 7&#039;s T-SQL documentation, or on Google, about how I would do this.<BR><BR>Here&#039;s the SP if you&#039;re curious:<BR>CREATE PROCEDURE dbo.spFetchInfo<BR><BR>@strPName varchar(100),<BR>@strPDivision varchar(100),<BR>@intCursorPosition int,<BR>@intReturnCount int<BR><BR>AS<BR><BR>DECLARE @intCounter as integer<BR>SELECT @intCounter = 1<BR><BR>DECLARE party_cursor SCROLL CURSOR FOR<BR><BR>SELECT [Name], Division<BR>FROM tblGroup WHERE <BR>[Name] LIKE &#039;%&#039; + @strPName + &#039;%&#039; and<BR>Division LIKE &#039;%&#039; + @strPDivision + &#039;%&#039; <BR><BR>OPEN party_cursor<BR><BR>FETCH RELATIVE @intCursorPosition FROM party_cursor<BR><BR>-- Check @@FETCH_STATUS to see if there are any more rows to fetch.<BR>WHILE @@FETCH_STATUS = 0 and @intCounter &#060; @intReturnCount<BR>BEGIN<BR>-- This is executed as long as the previous fetch succeeds.<BR> FETCH RELATIVE 1 FROM party_cursor<BR> SELECT @intCounter = @intCounter + 1<BR>END<BR><BR>CLOSE party_cursor<BR>DEALLOCATE party_cursor