最简单的游标,可以让你一条一条操作
SET NOCOUNT ONDECLARE @au_id varchar(11), @au_fname varchar(20), @au_lname varchar(40),
   @message varchar(80), @title varchar(80)PRINT '-------- Utah Authors report --------'DECLARE authors_cursor CURSOR FOR 
SELECT au_id, au_fname, au_lname
FROM authors
WHERE state = 'UT'
ORDER BY au_idOPEN authors_cursorFETCH NEXT FROM authors_cursor 
INTO @au_id, @au_fname, @au_lnameWHILE @@FETCH_STATUS = 0
BEGIN
   PRINT ' '
   SELECT @message = '----- Books by Author: ' + 
      @au_fname + ' ' + @au_lname   PRINT @message   -- Declare an inner cursor based   
   -- on au_id from the outer cursor.   DECLARE titles_cursor CURSOR FOR 
   SELECT t.title
   FROM titleauthor ta, titles t
   WHERE ta.title_id = t.title_id AND
   ta.au_id = @au_id   -- Variable value from the outer cursor   OPEN titles_cursor
   FETCH NEXT FROM titles_cursor INTO @title   IF @@FETCH_STATUS <> 0 
      PRINT '         <<No Books>>'        WHILE @@FETCH_STATUS = 0
   BEGIN
      
      SELECT @message = '         ' + @title
      PRINT @message
      FETCH NEXT FROM titles_cursor INTO @title
   
   END   CLOSE titles_cursor
   DEALLOCATE titles_cursor
   
   -- Get the next author.
   FETCH NEXT FROM authors_cursor 
   INTO @au_id, @au_fname, @au_lname
ENDCLOSE authors_cursor
DEALLOCATE authors_cursor
GO