首頁  >  文章  >  php教程  >  SQL Server 遊標處理 循環

SQL Server 遊標處理 循環

高洛峰
高洛峰原創
2016-12-14 11:49:211115瀏覽

測試3個資料

CREATE TABLE test_main (
id      INT,
value   VARCHAR(10),
PRIMARY KEY(id)
);

INSERT INTO test_main(id, value) VALUES (1, 'ONE');

INSERT INTO test_main(id, value) VALUES (2, 'TWO'); (id, value) VALUES (3, 'THREE');

簡單循環處理

 DECLARE

   @id    INT

   DECLARE c_test_main CURSOR FAST_FORWARD FOR

     SELECT id, value FROM test_main;

   -- 開啟遊標.

  ROM c_test_main INTO @id, @value;

   --假如檢索到了數據,才處理.

   WHILE @@fetch_status = 0

   BEGIN

     FROM c_test_main INTO @id, @value;

   END;

-- 關閉遊標

   CLOSE c_test_main;

   --釋放遊標.

   DEALLOCATE REE  

用於更新的遊標

 DECLARE

   @ id    INT,  @value VARCHAR(10);

 BEGIN

   --定義遊標.

   DECLRS

       FOR UPDATE;

   --開啟遊標.

   OPEN c_test_main ;

   --填入資料.

   FETCH NEXT FROM c_test_main INTO @id, @value;

   --

     PRINT @value;

     --更新資料.

     UPDATE

       test_main

     WHERE

       CURRENT OF c_test_main;

     --遠@id, @value;

   END;

   --關閉遊標

   CLOSE c_test_main;

  

 go

ONE

(1行受影響)

TWO

Three

SELECT * FROM test_main;

go

id        ONE1

2 TWO1

          3 Three1

(3 行受影響的數據,增加至11條。

DECLARE

  @id INT, @value VARCHAR(10);

BEGIN

  -- 定義遊標.

  DECLARE c_test_main CURSOR  SCROLL 遠標.

  OPEN c_test_main;

-- 填入資料.

  FETCH FIRST FROM c_test_main INTO @id, @value;

  PRINT '遊標中的第一行:' + @value;

  -- ;

  PRINT '遊標中的最後一行:' + @value;

  -- 填入資料.

  FETCH ABSOLUTE 3 FROM c_test_main INTO @id, @value;

  PRINT '遊標位址中的第3行[絕對標位址] + @value;

  -- 填入資料.

  FETCH RELATIVE -2 FROM c_test_main INTO @id, @value;

  PRINT '遊標中的第一個填色 --資料.

  FETCH PRIOR  FROM c_test_main INTO @id, @value;

  PRINT '遊標中的上一行:' + @value;

  -- 填入資料.

fmain TCH遊標中的下一行:' + @value;

  -- 關閉遊標

  CLOSE c_test_main;

  -- 釋放遊標.

  DEALLOCATE 92語法

DECLARE 遊標名稱[ INSENSITIVE ] [ SCROLL ] CURSOR

FOR select_statement

[ FOR { READ ONLY | UPDATE [ OF column_name [ ,...nactARE 或

語法

語法
遊標名稱CURSOR

[ LOCAL |全球]

[ FORWARD_ONLY |]

[ 靜態|鍵盤|動態|快轉]

[ 只讀|H

[ FOR UPDATE [ OF column_name [ ,...n ] ] ]

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn