2011-02-11 9 views
50

私は一度に処理したい行からいくつかの列を含むカーソルを持っています。カーソルを使用する方法の例のほとんどが、カーソルから特定の列を1つずつスカラー値に割り当ててから、次の行に移動することを示していることがわかります。SQL Serverカーソルで複数の値を取得

それは、次のような何かをすることができます場合、私は知りたいのは何

OPEN db_cursor 
FETCH NEXT FROM db_cursor INTO @name 

WHILE @@FETCH_STATUS = 0 
BEGIN 
     --Do Stuff with @name scalar value, then get next row from cursor 

     FETCH NEXT FROM db_cursor INTO @name 
END 

は次のとおりです。

OPEN db_cursor 
    FETCH NEXT FROM db_cursor; 

    WHILE @@FETCH_STATUS = 0 
    BEGIN 
      SET @myName = db_cursor.name; 
      SET @myAge = db_cursor.age; 
      SET @myFavoriteColor = db_cursor.favoriteColor; 
      --Do stuff with scalar values 

      FETCH NEXT FROM db_cursor; 
    END 

ヘルプは常に歓迎です。

答えて

93

これは動作するはずです:

DECLARE db_cursor CURSOR FOR SELECT name, age, color FROM table; 
DECLARE @myName VARCHAR(256); 
DECLARE @myAge INT; 
DECLARE @myFavoriteColor VARCHAR(40); 
OPEN db_cursor; 
FETCH NEXT FROM db_cursor INTO @myName, @myAge, @myFavoriteColor; 
WHILE @@FETCH_STATUS = 0 
BEGIN 

     --Do stuff with scalar values 

     FETCH NEXT FROM db_cursor INTO @myName, @myAge, @myFavoriteColor; 
END; 
CLOSE db_cursor; 
DEALLOCATE db_cursor; 
関連する問題