Is there a limit to the number of rows a cursor can handle? I have selected approx 53000 rows into a cursor, which runs fine until it gets to about 32700 rows in. It then seems to hang - any ideas as to why this is and how I can get round it? I'm running SQL Server 2000.

DECLARE
@my_num int,
@my_unk_text_id int

SELECT @my_unk_text_id = text_id FROM st_cd WHERE feanme='UNKNOWN' and featyp='ST'

DECLARE renum CURSOR FOR SELECT text_id FROM test WHERE text_id=@my_unk_text_id
BEGIN
SET @my_num=0
OPEN renum
FETCH NEXT FROM renum
WHILE @@FETCH_STATUS = 0
BEGIN
SET @my_num = @my_num+1
UPDATE test SET text_id=text_id + @my_num where CURRENT OF renum
FETCH NEXT FROM renum
END
CLOSE renum
DEALLOCATE renum
END