日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server 7.0 入門(七)

瀏覽:222日期:2023-10-28 09:53:58
i.;;;;;;聲明游標在這一步中,需要指定游標的屬性和根據(jù)要求產(chǎn)生的結(jié)果集。有兩種方法可以指定一個游標。形式1;;(ANSI 92)DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSORFOR select_statement[FOR {READ ONLY | UPDATE ][OF column_list]}]形式2DECLARE cursor_name CURSOR[LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC][READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]FOR select_statement[FOR {READ ONLY | UPDATE ][OF column_list]}]INSENSITIVE關(guān)鍵字指明要為檢索到的結(jié)果集建立一個臨時拷貝,以后的數(shù)據(jù)從這個臨時拷貝中獲取。如果在后來游標處理的過程中,原有基表中數(shù)據(jù)發(fā)生了改變,那么它們對于該游標而言是不可見的。這種不敏感的游標不允許數(shù)據(jù)更改。SCROLL關(guān)鍵字指明游標可以在任意方向上滾動。所有的fetch選項(first、last、next、relative、absolute)都可以在游標中使用。如果忽略該選項,則游標只能向前滾動(next)。Select_statement指明SQL語句建立的結(jié)果集。Transact SQL語句COMPUTE、COMPUTE BY、FOR BROWSE和INTO在游標聲明的選擇語句中不允許使用。READ ONLY指明在游標結(jié)果集中不允許進行數(shù)據(jù)修改。UPDATE關(guān)鍵字指明游標的結(jié)果集可以修改。OF column_list指明結(jié)果集中可以進行修改的列。缺省情況下(使用UPDATE關(guān)鍵字),所有的列都可進行修改。LOCAL關(guān)鍵字指明游標是局部的,它只能在它所聲明的過程中使用。GLOBAL關(guān)鍵字使得游標對于整個連接全局可見。全局的游標在連接激活的任何時候都是可用的。只有當連接結(jié)束時,游標才不再可用。FORWARD_ONLY指明游標只能向前滾動。STATIC的游標與INSENSITIVE的游標是相同的。KEYSET指明選取的行的順序。SQL Server將從結(jié)果集中創(chuàng)建一個臨時關(guān)鍵字集。如果對數(shù)據(jù)庫的非關(guān)鍵字列進行了修改,則它們對游標是可見的。因為是固定的關(guān)鍵字集合,所以對關(guān)鍵字列進行修改或新插入列是不可見的。DYNAMIC指明游標將反映所有對結(jié)果集的修改。SCROLL_LOCK是為了保證游標操作的成功,而對修改或刪除加鎖。OPTIMISTIC指明哪些通過游標進行的修改或者刪除將不會成功。注意:· 如果在SELECT語句中使用了DISTINCT、UNION、GROUP BY語句,且在選擇中包含了聚合表達式,則游標自動為INSENSITIVE的游標。· 如果基表沒有唯一的索引,則游標創(chuàng)建成INSENSITIVE的游標。· 如果SELECT語句包含了ORDER BY,而被ORDER BY的列并非唯一的行標識,則DYNAMIC游標將轉(zhuǎn)換成KEYSET游標。如果KEYSET游標不能打開,則將轉(zhuǎn)換成INSENSITIVE游標。使用SQL ANSI-92語法定義的游標同樣如此,只是沒有INSENSITIVE關(guān)鍵字而已。;;;;;;;ii.;;;;;;打開游標打開游標就是創(chuàng)建結(jié)果集。游標通過DECLARE語句定義,但其實際的執(zhí)行是通過OPEN語句。語法如下:OPEN { { [GLOBAL] cursor_name } | cursor_variable_name}GLOBAL指明一個全局游標。Cursor_name是被打開的游標的名稱。Cursor_variable_name是所引用游標的變量名。該變量應(yīng)該為游標類型。在游標被打開之后,系統(tǒng)變量@@cursor_rows可以用來檢測結(jié)果集的行數(shù)。@@cursor_rows為負數(shù)時,表示游標正在被異步遷移,其絕對值(如果@@cursor_rows為-5,則絕對值為5)為當前結(jié)果集的行數(shù)。異步游標使用戶在游標被完全遷移時仍然能夠訪問游標的結(jié)果。;;;;;;iii.;;;;;;從游標中取值在從游標中取值的過程中,可以在結(jié)果集中的每一行上來回移動和處理。如果游標定義成了可滾動的(在聲明時使用SCROLL關(guān)鍵字),則任何時候都可取出結(jié)果集中的任意行。對于非滾動的游標,只能對當前行的下一行實施取操作。結(jié)果集可以取到局部變量中。Fetch命令的語法如下:FETCH [NEXT | PRIOR| FIRST | LAST | ABSOLUTE {n | @nvar} | RELATIVE {n | @nvar}]FROM [GLOBAL] cursor_name} | cursor_variable_name}[INTO @variable_name ][,……n]]NEXT指明從當前行的下一行取值。PRIOR指明從當前行的前一行取值。FIRST是結(jié)果集的第一行。LAST是結(jié)果集的最后一行。ABSOLUTE n表示結(jié)果集中的第n行,該行數(shù)同樣可以通過一個局部變量傳播。行號從0開始,所以n為0時不能得到任何行。RELATIVE n表示要取出的行在當前行的前n行或后n行的位置上。如果該值為正數(shù),則要取出的行在當前行前n行的位置上,如果該值為負數(shù),則返回當前行的后n行。INTO @cursor_variable_name表示游標列值存儲的地方的變量列表。該列表中的變量數(shù)應(yīng)該與DECLARE語句中選擇語句所使用的變量數(shù)相同。變量的數(shù)據(jù)類型也應(yīng)該與被選擇列的數(shù)據(jù)類型相同。直到下一次使用FETCH語句之前,變量中的值都會一直保持。每一次FETCH的執(zhí)行都存儲在系統(tǒng)變量@@fetch_status中。如果FETCH成功,則@@fetch_status被設(shè)置成0。@@fetch_status為-1表示已經(jīng)到達了結(jié)果集的一部分(例如,在游標被打開之后,基表中的行被刪除)。@@fetch_status可以用來構(gòu)造游標處理的循環(huán)。例如:DECLARE @iname char(20), @fname char(20)OPEN author_curFETCH FIRST FROM author_cur INTO @iname, @fnameWHILE @@fetch_status = 0BEGINIF @fname = ‘Albert’PRINT “Found Albert Ringer”ELSEPrint “Other Ringer”FETCH NEXT FROM author_cur INTO @iname, @fnameEND;;;;;iv.;;;;;;關(guān)閉游標CLOSE語句用來關(guān)閉游標并釋放結(jié)果集。游標關(guān)閉之后,不能再執(zhí)行FETCH操作。如果還需要使用FETCH語句,則要重新打開游標。語法如下:CLOSE [GLOBAL] cursor_name | cursor_variable_name;;;;;;;v.;;;;;;釋放游標游標使用不再需要之后,要釋放游標。DEALLOCATE語句釋放數(shù)據(jù)結(jié)構(gòu)和游標所加的鎖。語法如下:DEALLOCATE [GLOBAL] cursor_name | cursor_variable_name;;;;;;;下面給出游標的一個完整的例子:;;;;;;;USE master;;;;;;;GO;;;;;;;CREATE PROCEDURE sp_BuildIndexes;;;;;;;AS;;;;;;;DECLARE @TableName sysname, @msg varchar(100), @cmd varchar(100);;;;;;;DECLARE table_cur CURSOR FOR;;;;;;;SELECT name FROM sysobjects WHERE type=’u’;;;;;;;OPEN table_cur;;;;;;;FETCH NEXT FROM table_cur INTO @TableName;;;;;;;;;;;;;;WHILE @@fetch_status = 0;;;;;;;BEGIN;;;;;;IF @@fetch_status = -2;;;;;CONTINUE;;;;;;SELECT @msg = “Building indexes for table”+@TableName+”…”;;;;;;PRINT @msg;;;;;;SELECT @cmd = “DBCC DBREINDEX (‘”+@TableName+”')”;;;;;;EXEC (@cmd);;;;;;PRINT “;;;;“;;;;;;FETCH NEXT FROM table_cur INTO @TableName;;;;;;;END;;;;;;;DEALLOCATE table_cur;;;;;;;GO;;;;;;;下面的腳本將為PUBS數(shù)據(jù)庫執(zhí)行sp_BuildIndexes;;;;;;;USE pubs;;;;;;;GO;;;;;;;EXEC ap_BuildIndexes;;;;;;;注意:上面也是創(chuàng)建用戶定義的系統(tǒng)存儲過程的示例。使用臨時表;;;;;;;臨時表是在TempDB中創(chuàng)建的表。臨時表的名稱都以“#”開頭。臨時表的范圍為創(chuàng)建臨時表的連接。因為,臨時表不能在兩個連接之間共享,一旦連接關(guān)閉,臨時表就會被丟棄。如果臨時表被創(chuàng)建于存儲過程之中,則臨時表的范圍在存儲過程之中,或者被該存儲過程調(diào)用的任何存儲過程之中。如果需要在連接之間共享臨時表,則需要使用全局的臨時表。全局的臨時表以“##”符號開頭,它將一直存在于數(shù)據(jù)庫中,直到SQL Server重新啟動。一旦這類臨時表創(chuàng)建之后,所有的用戶都可以訪問到。在臨時表上不能明確地指明權(quán)限。;;;;;;;臨時表提供了存儲中間結(jié)果的能力。有時候,臨時表還能通過將一個復(fù)雜的查詢分解成兩個查詢而獲得性能的改善。這可以通過首先將第一個查詢的結(jié)果存在臨時表中,然后在第二個查詢中使用臨時表來實現(xiàn)。當一個大表中的某個子集在一個在座過程中使用多次時,建議使用臨時表。在這種情況下,在臨時表中保持數(shù)據(jù)的子集,以在隨后的連接中使用,這樣能大大改善性能。還可以在臨時表中創(chuàng)建索引。
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91日韩免费| 免费久久精品| 日韩福利在线观看| 日本中文字幕视频一区| 国产欧美日韩一级| 久久不见久久见国语| 国产伊人久久| 中文字幕在线官网| 色天使综合视频| 日韩制服丝袜av| 欧美久久一区二区三区| 精品国产成人| 激情综合自拍| 欧美日韩一区二区三区不卡视频| 国产成人精品一区二区三区视频| 国产在线日韩| 91精品麻豆| av一区在线| 亚洲bt欧美bt精品777| 久久尤物视频| 亚洲一区二区免费看| 国产精品久久久久久模特| 日韩欧美中文| 视频精品一区二区| 久久男人av| 一本色道久久精品| 久久精品资源| 在线视频亚洲欧美中文| 国产va在线视频| 亚洲天堂日韩在线| 国产一区二区精品久| 亚洲欧美日韩国产| 美女视频黄久久| 99热精品在线| 国产精品福利在线观看播放| 天堂av在线一区| 精品国产99| 日韩免费精品| 久久国产成人午夜av影院宅| 日本免费新一区视频| 亚洲播播91| 国产欧美一级| 美女精品在线| 伊伊综合在线| 国产日韩1区| 亚洲欧美日韩国产综合精品二区| 欧美丰满日韩| 欧美一级一区| 91久久黄色| 成人精品国产亚洲| 日韩精品高清不卡| 欧美日韩视频| 久久久久亚洲精品中文字幕| 先锋影音国产一区| 伊人久久高清| 捆绑调教日本一区二区三区| 欧美一级二级三级视频| 在线视频免费在线观看一区二区| 在线天堂资源www在线污| 久久精品av麻豆的观看方式| 色天使综合视频| 精品欧美日韩精品| 日韩va欧美va亚洲va久久| 影音国产精品| 欧美日韩一区二区综合 | 国产91在线播放精品| 视频一区二区国产| 欧美+日本+国产+在线a∨观看| 久久影院一区二区三区| 日韩精品一区二区三区免费视频| 欧美日韩国产一区二区三区不卡| 久久影院午夜精品| 精品亚洲成人| 日本不卡一二三区黄网| 久热re这里精品视频在线6| 精品中文字幕一区二区三区av| 在线中文字幕播放| 不卡一二三区| 国产一区二区三区久久久久久久久| 欧美日本不卡高清| 奇米亚洲欧美| 亚洲专区视频| 亚洲精品乱码日韩| 亚洲欧美久久精品| 亚洲精品一级| 日韩在线一二三区| 亚洲一二av| 亚洲欧美日本国产 | 视频一区国产视频| 免费成人在线视频观看| 国产农村妇女精品一二区| 午夜在线精品偷拍| 三级欧美韩日大片在线看| 亚洲精品三级| 亚洲精品三级| 欧美精品中文字幕亚洲专区| 日韩成人午夜精品| 欧美永久精品| 美女视频黄久久| 色欧美自拍视频| 久久夜夜操妹子| 偷拍欧美精品| 日韩精品免费视频一区二区三区| 91精品一区| 精品国产aⅴ| 日韩一区二区在线免费| 亚洲成人免费| 久久香蕉精品| 国产日韩三级| av最新在线| 激情五月综合网| 亚洲精品乱码日韩| 美腿丝袜亚洲一区| 91tv亚洲精品香蕉国产一区| 欧美日韩视频一区二区三区| 亚洲精品美女91| 久久97久久97精品免视看秋霞| 捆绑调教日本一区二区三区| 欧美亚洲在线日韩| 日韩中文字幕亚洲一区二区va在线| 香蕉久久久久久| 免费精品一区| 午夜精品网站| 青青草精品视频| 欧洲av一区二区| 丝袜美腿成人在线| 欧美有码在线| 人在线成免费视频| 免费看欧美美女黄的网站| 麻豆视频一区| 久久久久久久久久久妇女| 久久亚洲影院| 国产一区调教| 蜜臀av一区二区在线免费观看 | 三级精品视频| 蜜臀精品久久久久久蜜臀| 国产日产精品一区二区三区四区的观看方式 | 亚洲欧美网站| 久久99精品久久久野外观看| 亚洲午夜一级| 国产精品一站二站| 免费av一区| 国产在线不卡一区二区三区| 亚洲制服少妇| 久久一区欧美| 日韩精品一级中文字幕精品视频免费观看| 国产日韩亚洲欧美精品| 亚洲午夜精品久久久久久app| 国产日韩欧美三区| 不卡av一区二区| 老司机精品在线| 久热精品在线| 久久精品二区三区| 国产精品一页| 综合欧美亚洲| 久久高清免费| 精品资源在线| 一级成人国产| 久久久精品日韩| 综合日韩av| 欧美天堂在线| 黄色av日韩| 精品视频国产| 日本不卡高清| 免费日韩av| 欧美一区二区三区久久精品| 夜夜精品视频| 久久人人99| 精品中国亚洲| 日韩激情视频网站| 国产精品日韩| 国内精品99| 韩国三级一区| 日韩综合一区| 国产在线观看91一区二区三区| 日本成人在线视频网站| 亚洲欧美日韩在线观看a三区| 人人精品亚洲| 日韩免费高清| 精品丝袜久久| 美腿丝袜在线亚洲一区| 7m精品国产导航在线| 日本欧美在线看| 欧美在线网站| 欧美高清一区| 欧美一区二区三区激情视频| 日韩深夜视频| 日本一区二区高清不卡| 国产精品红桃| 牛牛精品成人免费视频| 国产精品mm| 欧美在线91| 欧美一区自拍| 国产精品亚洲综合久久| 久久国产人妖系列| 国产毛片精品| 麻豆成人91精品二区三区| 久久中文字幕一区二区| 国产一区二区三区亚洲| 国产精品99一区二区三|