SQL 遊標cursor

景上發表於2016-05-27

遊標的概念:遊標是一種處理資料的方法,它可以指向表中的單一記錄,比where語句更加靈活高效,主要用於儲存過程、觸發器和Transact-SQL指令碼中,提供在結果集中
向前或向後瀏覽資料的功能;

遊標的優點:
1、對結果集中的每一行記錄執行相同或不同的操作,而非對整個集合執行同一個操作;
2、可以對遊標位置在表中所在的行,進行刪除和更新的操作;
3、遊標作為資料庫管理系統和應用程式之間的橋樑,將兩種處理方式連線起來;

伺服器遊標型別:
1、只進遊標:不支援滾動,只能從頭到尾順序提取;
2、靜態遊標:不會顯示開啟遊標以後新插入的行,會顯示開啟遊標以後剛刪除的行;
3、由鍵集驅動的遊標:對應的鍵集是在開啟該遊標時在tempdb中生成的;
4、動態遊標:當滾動遊標時會反映結果集中所在的所有更改;

遊標的基本操作:宣告、開啟、讀取、關閉、釋放;

   DECLARE cursor_suppliers CURSOR FOR    ---1、遊標的宣告(給遊標賦值):
   SELECT s_name,s_city   
   FROM suppliers

   OPEN cursor_suppliers;               ----2、遊標的開啟:

   FETCH NEXT FROM cursor_suppliers    -----3、讀取遊標:
   WHILE @@FETCH_STATUS = 0
   BEGIN
       FETCH NEXT FROM cursor_suppliers
   END

   CLOSE cursor_suppliers;            -----4、關閉遊標;

   DEALLOCATE cursor_suppliers;     -------5、釋放遊標;

這裡寫圖片描述

相關文章