SQL SERVER遊標的使用入門教程

來源:互聯網
上載者:User

遊標的理解:

遊標其實可以理解成一個定義在特定資料集上的指標,我們可以控制這個指標遍曆資料集,或者僅僅是指向特定的行,所以遊標是定義在以Select開始的資料集上的普通的sql語句是面向集合的,遊標是面向行的。比如我們要取100條資料,通過普通的sql語句是一次取出所有行,而遊標是一行一行取出的。

遊標的缺點:


在效能上,遊標會吃更多的記憶體,減少可用的並發,佔用寬頻,鎖定資源,當然還有更多的代碼量

遊標的定義:

遊標變數支援兩種方式賦值,定義時賦值和先定義後賦值,定義遊標變數像定義其他局部變數一樣,在遊標前加”@”,注意,如果定義全域的遊標,只支援定義時直接賦值,並且不能在遊標名稱前面加“@”,兩種定義方式如下

 代碼如下 複製代碼
--定義時賦值(支援全域變數)
declare myname cursor for
select * from T

--先定義,後賦值(不支援全域變數)
declare @myname cursor
set @myname=cursor for
select * from T


遊標的參數:

FORWARD_ONLY(預設)--只能從資料集開始向資料集結束的方向讀取,FETCH NEXT是唯一的選項;

SCROLL --支援遊標在定義的資料集中向任何方向,或任何位置移動。

遊標使用快速入門:

 代碼如下 複製代碼
--定義遊標
declare myname cursor for
select id,data from T

--開啟遊標
open myname

--定義需要的參數
declare @id int
declare @data varchar(50)

--擷取下一行
fetch next from myname into @id,@data

--列印結果
print @id
print @str

--關閉遊標
close myname

--釋放遊標
deallocate myname

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.