簡述遊標的使用

遊標的使用可以簡單歸類爲5個步驟:

1.定義遊標

2.打開遊標

3.使用遊標

4.關閉遊標

5.釋放遊標


如下是遊標簡單實用的示例:

--1.定義遊標
DECLARE test_Cursor CURSOR FOR
SELECT ID,NAME FROM TEST
--2.打開遊標
OPEN test_Cursor
--3.使用遊標
DECLARE @ID INT,@NAME VARCHAR
FETCH NEXT FROM test_Cursor INTO @ID,@NAME
WHILE @@FETCH_STATUS=0
BEGIN
    PRINT @ID print @Name
    FETCH NEXT FROM test_Cursor INTO @ID,@NAME
END
--4.關閉遊標
CLOSE test_Cursor 
--5.釋放遊標
DEALLOCATE test_Cursor

遍歷TEST表的每一行,輸出每行的ID 和 NAME。


應用場景:

需要循環從一張表裏取值並判斷作相應的處理,有時候也可以使用臨時表結合while循環來替代遊標操作,實踐證明,遊標的操作更快。


總結:

遊標是邪惡的,遊標是每循環一次返回一條結果集,而SELECT查詢是返回全部的結果集。之前看有網友舉了一個形象生動的例子,遊標就好比你去ATM機取1000塊錢,你每次取100,分10次取出來。所以能不使用遊標儘量不要使用遊標,在我們窮盡了子查詢,while循環,臨時表,表變量,自建函數仍不能實現的時候,使用遊標實現。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章