日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
用SQL游標對數(shù)據(jù)進行遍歷循環(huán)

SQL游標相信大家都比較熟悉了,下面就教您如何使用SQL游標對數(shù)據(jù)進行遍歷循環(huán)的方法,希望對您學習SQL游標方面能有所幫助。

和政網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)。

SQL游標實際上是一種能從包括多條數(shù)據(jù)記錄的結果集中每次提取一條記錄的機制。游標總是與一條T_SQL 選擇語句相關聯(lián)因為游標由結果集(可以是零條、一條或由相關的選擇語句檢索出的多條記錄)和結果集中指向特定記錄的游標位置組成。當決定對結果集進行處理時,必須聲明一個指向該結果集的游標。

SQL游標的優(yōu)點是可以方便從一個結果集中進行循環(huán)遍歷數(shù)據(jù)在進行操作。

1、SQL游標允許應用程序對查詢語句select 返回的行結果集中每一行進行相同或不同的操作,而不是一次對整個結果集進行同一種操作;

2、它還提供對基于游標位置而對表中數(shù)據(jù)進行刪除或更新的能力;

3、游標把作為面向集合的數(shù)據(jù)庫管理系統(tǒng)和面向行的程序設計兩者聯(lián)系起來,使兩個數(shù)據(jù)處理方式能夠進行溝通。

然爾游標也有缺點——復雜和低效,是游標的***缺點,也是致使很多時候在使用存儲過程中沒有想到游標的主要原因。

下面是在實際工作中的一個游標實例的應用,通過游標把A表的數(shù)據(jù)的一列值復制到B表的列當中,其中二個表都有相同的UID字段,條件是對相同UID的數(shù)據(jù)進行復制.

 
 
 
  1. declare @level varchar(100)  
  2. declare @uid varchar(100)  
  3. declare cur cursor--定義一個游標  
  4. read_only  
  5. for select egg_code.user_id,egg_prize_level  
  6. from egg_code inner join egg_prize on egg_prize.user_id=egg_code.user_id--為所獲得的數(shù)據(jù)集指定游標  
  7.  
  8. open cur--打開游標  
  9. fetch next from cur into @uid,@level--把提取操作的列數(shù)據(jù)放到局部變量中  
  10. while(@@fetch_status=0)--返回被 FETCH 語句執(zhí)行的***游標的狀態(tài),而不是任何當前被連接打開的游標的狀態(tài)。  
  11.  
  12. begin  
  13. --print '等級:'+@level+'--------------用戶ID:'+@uid  
  14.  
  15. update egg_code set prize_level=@level   where user_id=@uid--執(zhí)行操作  
  16.  
  17. --提前下一位信息  
  18. fetch next from cur into @uid,@level  
  19. end  
  20. close cur--關閉游標  
  21. deallocate cur--刪除游標  
  22. go  
  23.  

使用游標的順序: 聲名游標、打開游標、讀取數(shù)據(jù)、關閉游標、刪除游標。

由于 @@FETCH_STATUS 對于在一個連接上的所有游標是全局性的,要小心使用 @@FETCH_STATUS 。在執(zhí)行一條 FETCH 語句后,必須在對另一游標執(zhí)行另一 FETCH 語句前測試 @@FETCH_STATUS 。在任何提取操作出現(xiàn)在此連接上前,@@FETCH_STATUS 的值沒有定義。

例如,用戶從一個游標執(zhí)行一條 FETCH 語句,然后調用一個存儲過程,此存儲過程打開并處理另一個游標的結果。當控制從被調用的存儲過程返回后,@@FETCH_STATUS 反映的是在存儲過程中執(zhí)行的***的 FETCH 語句的結果,而不是在存儲過程被調用之前的 FETCH 語句的結果。

使用上面的游標是泉州SEO在一次網(wǎng)站砸金蛋活動中,二個表的數(shù)據(jù)在使用的過程中有部份后期改到程序致使有部份數(shù)據(jù)無法同步,導致前臺查詢的時候所用到的表無法查到相關的數(shù)據(jù),沒用游標進行操作之前試過只用簡單的SQL語句去實現(xiàn)這樣的同步功能,但是始終無法實現(xiàn),所以只能使用游標來實現(xiàn)

【編輯推薦】

動態(tài)sql語句基本語法介紹

SQL Server視圖的使用

SQL SERVER內部函數(shù)大全

sql server表格變量的用法

SQL Server變量賦值的方法


網(wǎng)站欄目:用SQL游標對數(shù)據(jù)進行遍歷循環(huán)
文章路徑:http://www.dlmjj.cn/article/dpigjie.html