Here's a nice simple example I have given to coworkers to get them going. It iterates through the cursor and then inserts into a new table.
DECLARE @StudentID int, @FirstName varchar, @LastName varchar, @GraduateError int
DECLARE StudentCursor CURSOR FOR
SELECT StudentID, FirstName, LastName
FROM Student
OPEN StudentCursor
FETCH NEXT FROM StudentCursor INTO @StudentID, @FirstName, @LastName
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
INSERT INTO Graduate(StudentID, FirstName, LastName, AddUser, AddDate)
VALUES(@StudentID, @FirstName, @LastName, 'administrator', GETDATE())
SELECT @GraduateError = @@ERROR
IF @GraduateError <> 0
BEGIN
PRINT '@GraduateError is ' + ltrim(rtrim(@GraduateError)) + '.'
END
ELSE
BEGIN
PRINT 'Student Migrated to Graduate --> ' + CAST(@StudentID AS Varchar (20))
END
FETCH NEXT FROM PopulationCursor INTO @StudentID, @FirstName, @LastName
END
END
CLOSE StudentCursor
DEALLOCATE StudentCursor