亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

簡析一下SQL Server里面Fast_Forword 和 SRROLL 的區別

2024-08-31 00:55:14
字體:
來源:轉載
供稿:網友
簡析一下SQL Server里面Fast_ForWord 和 SRROLL 的區別

這次簡單說說游標的分類。

先看看通常游標的語法

DECLARE cursor_name CURSOR   [ LOCAL  :局部游標,僅在當前會話有效      | GLOBAL  : 全局游標,全局有效,可以    ]      [ FORWARD_ONLY :只能向前游標,讀取游標時只能使用 Next 謂詞       | SCROLL  :滾動游標,FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTE 都可以使用    ]      [ STATIC :定義一個游標,以創建將由該游標使用的數據的臨時復本。對游標的所有請求都從 tempdb 中的這一臨時表中得到應答;       | KEYSET :對基表中的非鍵值所做的更改(由游標所有者更改或由其他用戶提交)可以在用戶滾動游標時看到。其他用戶執行的插入是不可見的(不能通過 Transact-SQL 服務器游標執行插入)。如果刪除某一行,則在嘗試提取該行時返回值為 -2 的 @@FETCH_STATUS。       | DYNAMIC :定義一個游標,以反映在滾動游標時對結果集內的各行所做的所有數據更改。行的數據值、順序和成員身份在每次提取時都會更改。動態游標不支持 ABSOLUTE 提取選項       | FAST_FORWARD :指定啟用了性能優化的 FORWARD_ONLY、READ_ONLY 游標。如果指定了 SCROLL 或 FOR_UPDATE,則不能也指定 FAST_FORWARD    ]      [ READ_ONLY :只讀游標,不能對游標內容進行更改,不能使用 where current of 語句       | SCROLL_LOCKS :指定通過游標進行的定位更新或刪除一定會成功。將行讀入游標時 SQL Server 將鎖定這些行,以確保隨后可對它們進行修改。       | OPTIMISTIC  :指定如果行自讀入游標以來已得到更新,則通過游標進行的定位更新或定位刪除不成功。當將行讀入游標時,SQL Server 不鎖定行
     ]      [ TYPE_WARNING ]      FOR select_statement      [ FOR UPDATE [ OF column_name [ ,...n ] ]  :制定那些列可以進行更新,如果不填,則默認全部可以更新     ]好了,拋完書包之后,現在問題來了,本人盡量圖文并茂的描述每種類型的特點吧……_(:з」∠)_--------------------------------------------------------------我是分割線-----------------------------------------------------------------------------------------------------------------------------------------------測試表的結構
CREATE TABLE [dbo].[Employee]([ID] [int] NOT NULL IDENTITY(1, 1) primary key,[NAME] [nvarchar] (50)  NULL,[Name2] [varchar] (50)  NULL) ON [PRIMARY]GO

FORWARD_ONLY  和 SCROLL   這兩者在用的過程中還是比較好區別。一個只能前進,一個可以前滾翻后滾翻什么的。先看看
FORWARD_ONLY
DECLARE CR_CURSOR CURSOR FAST_FORWARD --這個游標,是一個只讀游標而已哦~FOR    SELECT  ID ,            NAME    FROM    dbo.Employee    WHERE   ID >= 24    DECLARE @ID INT ,    @Name NVARCHAR(50)    OPEN CR_CURSORFETCH NEXT FROM CR_CURSOR INTO @ID, @NameWHILE @@FETCH_STATUS = 0     BEGIN    --UPDATE dbo.Employee SET Name2 = @Name WHERE CURRENT OF CR_CURSOR  因為是只讀游標,所以是不允許修改游標本身內容        UPDATE  dbo.Employee        SET     Name2 = @Name        WHERE   ID = @ID        FETCH NEXT FROM CR_CURSOR INTO @ID, @Name    ENDCLOSE CR_CURSORDEALLOCATE CR_CURSOR    

然后我們看看執行計劃,這個就跟普通的即時查詢時沒有任何區別的,所以我猜測,假如在游標讀取過程中,數據發生了變化,是可以獲取出來的。下面我來驗證一下

1、在讀取之前,我先溫柔的刪除Employee 表里面,ID = 25的記錄 
DELETE FROM dbo.Employee WHERE ID = 25

2、然后在讀取游標里面開啟單步調試,讀到ID = 24的節點

3、然后在讀下一個游標之前,我添加了一條數據

SET IDENTITY_INSERT Employee ONINSERT INTO dbo.Employee        (ID,NAME )VALUES  ( 25,N'我是插進來的小三')SET IDENTITY_INSERT Employee OFF

然后繼續F10前進 ~咦~~25出來了野~

證明了,FORWARD_ONLY 這貨是在游標向下滾動的時候即使獲取數據的。所以能捕捉到新插入或刪除的數據。大致是這樣紙了,下面在看看
SCROLL 
DECLARE CR_CURSOR CURSOR SCROLL  --代碼基本一致,只是換成了 SCROLLFOR    SELECT  ID ,            NAME    FROM    dbo.Employee    WHERE   ID >= 24    DECLARE @ID INT ,    @Name NVARCHAR(50)    OPEN CR_CURSORFETCH NEXT FROM CR_CURSOR INTO @ID, @NameWHILE @@FETCH_STATUS = 0     BEGIN        UPDATE dbo.Employee SET Name2 = @Name WHERE CURRENT OF CR_CURSOR  --這句現在可以執行了        FETCH NEXT FROM CR_CURSOR INTO @ID, @Name    ENDCLOSE CR_CURSORDEALLOCATE CR_CURSOR

慣例先看看這個執行計劃吧~可以看到有一個查詢過程要把數據插入到 CWT_PrimaryKey 的臨時表里面。那我猜想,如果在游標讀取途中,外部有數據的增加,是獲取不到的了,那如果更新和刪除會怎么樣呢?實驗一下
1、在讀取之前,我還是先溫柔的刪除Employee 表里面,ID = 25的記錄 
DELETE FROM dbo.Employee WHERE ID = 25

2、然后在讀取游標里面開啟單步調試,讀到ID = 24的節點

3、然后在讀下一個游標之前,我添加了一條數據

SET IDENTITY_INSERT Employee ONINSERT INTO dbo.Employee        (ID,NAME )VALUES  ( 25,N'我是插進來的小三')SET IDENTITY_INSERT Employee OFF

然后F10……ID25沒有粗線_(:з」∠)_直接到26去了

確實,外部新增了數據,是獲取不到的。下面測一下修改和刪除。

1、然后在讀取游標里面開啟單步調試,讀到ID = 24的節點

2、修改ID是25的數據

UPDATE dbo.Employee SET NAME = '我是修改了的ID25哦' WHERE ID = 25

3、然后按F10繼續走,是可以獲取的喲~

刪除呢?重試一遍,在單步的過程中直接將 ID = 25的數據抹掉,然后就直接循環結束了~查了一下 @@Fetch_Status = -2 提取數據失敗,當然啦……數據都被刪除了。順帶一提,如果繼續往下取,還是可以取到下一條數據的喲~……圖就不截了。。。
然后在繼續試下各種方式,再進行補充

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产区精品在线观看| 国产欧美精品久久久| 日韩有码视频在线| 欧美俄罗斯性视频| 97视频国产在线| 国产精品无av码在线观看| 91久久久久久国产精品| 日韩中文字幕精品| 亚洲欧美日韩国产成人| 日韩欧美在线视频| 美女国内精品自产拍在线播放| 成人字幕网zmw| 欧美综合国产精品久久丁香| 精品亚洲一区二区三区在线观看| 国产精品色悠悠| 最好看的2019的中文字幕视频| 国产99视频在线观看| 精品少妇v888av| 亚洲国语精品自产拍在线观看| 国产精品观看在线亚洲人成网| 亚洲精品欧美日韩专区| 国产亚洲日本欧美韩国| 亚洲综合中文字幕在线| 亚洲精品美女视频| 国产精品高清免费在线观看| 狠狠色香婷婷久久亚洲精品| 日韩av在线一区| 欧美与欧洲交xxxx免费观看| 精品偷拍一区二区三区在线看| 精品网站999www| 18性欧美xxxⅹ性满足| 日韩激情在线视频| 夜夜嗨av一区二区三区四区| 久久精品91久久久久久再现| 欧美亚洲国产视频| 欧美最猛黑人xxxx黑人猛叫黄| 日韩电影中文字幕| 成人免费xxxxx在线观看| 伊人伊成久久人综合网站| 国产精品一二三在线| 欧美日韩免费在线| 国产原创欧美精品| 亚洲欧美一区二区激情| 欧美交受高潮1| 韩曰欧美视频免费观看| 欧美人与物videos| 亚洲国产日韩欧美在线99| 92福利视频午夜1000合集在线观看| 久久五月情影视| 亚洲国产精品成人精品| 日韩h在线观看| 亚洲视频在线播放| 在线看日韩欧美| 亚洲午夜小视频| 黄色91在线观看| 欧美日韩成人黄色| 精品国产拍在线观看| 欧美亚洲另类激情另类| 精品亚洲夜色av98在线观看| 国产在线观看精品一区二区三区| 亚洲综合最新在线| 国产一区二区激情| 久久久日本电影| 国产日产欧美a一级在线| 色哟哟入口国产精品| 青青精品视频播放| 国产亚洲精品91在线| 国产欧美亚洲精品| 国产精品www色诱视频| 91干在线观看| 欧美激情一区二区久久久| 亚洲国产成人精品久久久国产成人一区| 日韩久久免费视频| 欧美性感美女h网站在线观看免费| 国模吧一区二区三区| 欧美精品生活片| 一区二区在线免费视频| 日韩在线观看免费高清| 久久九九全国免费精品观看| 国产丝袜高跟一区| 91综合免费在线| 国产精品偷伦视频免费观看国产| 性色av一区二区三区免费| 亚洲天堂日韩电影| 日韩精品极品毛片系列视频| 亚洲专区中文字幕| 1769国内精品视频在线播放| 国产在线播放91| 久久九九亚洲综合| 国产99视频精品免视看7| 亚洲一二在线观看| 欧美日韩成人免费| 亚洲精品国产精品国自产观看浪潮| 国产精品久久综合av爱欲tv| 久久久久久国产免费| 亚洲自拍偷拍区| 国产精品亚洲自拍| 国产一区深夜福利| 国产精品视频中文字幕91| 福利一区福利二区微拍刺激| 国产成人97精品免费看片| 国产美女直播视频一区| 精品国产31久久久久久| 国产精品女主播| 国模私拍一区二区三区| 成人夜晚看av| 欧美一区二区三区精品电影| 久久久精品999| 亚洲欧美日韩精品久久奇米色影视| 中日韩美女免费视频网站在线观看| 国产综合久久久久久| 久久婷婷国产麻豆91天堂| 日韩免费电影在线观看| 欧美高清视频在线播放| 人妖精品videosex性欧美| 青青草原成人在线视频| 川上优av一区二区线观看| 精品久久香蕉国产线看观看gif| 国产成人精品免费久久久久| 亚洲欧美制服综合另类| 日韩av电影在线免费播放| 日韩美女av在线免费观看| 亚洲国产成人爱av在线播放| 亚洲a级在线播放观看| 精品久久中文字幕久久av| 国产精品99一区| 国产成人久久久精品一区| 国产精品吹潮在线观看| 超碰91人人草人人干| 欧美日韩成人在线视频| 5278欧美一区二区三区| 亚洲有声小说3d| 国产综合视频在线观看| 精品国产欧美一区二区三区成人| 国产亚洲精品综合一区91| 日韩高清不卡av| 久久久久久久久91| 91国自产精品中文字幕亚洲| 色哟哟网站入口亚洲精品| 日韩精品极品在线观看| 98午夜经典影视| 成人有码在线播放| 国产精品日韩av| 日韩成人久久久| 一区二区三区日韩在线| 欧美性猛交xxxx乱大交极品| 欧美电影免费观看网站| 亚洲四色影视在线观看| 国产精品女人网站| 久久久久久亚洲精品不卡| 成人在线视频网| 亚洲999一在线观看www| 一区二区三区日韩在线| 国产精品一区二区久久| 亚洲国产成人精品久久久国产成人一区| 日韩欧美精品中文字幕| 亚洲精品日韩久久久| 欧美理论电影在线播放| 欧亚精品中文字幕| 蜜臀久久99精品久久久久久宅男| 日韩中文字幕在线播放| 精品二区三区线观看| 亚洲视频在线播放| 一本色道久久88亚洲综合88|