亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用游標(biāo)批量更改/填充數(shù)據(jù)表中的記錄值(The Us

系統(tǒng) 2179 0
本文轉(zhuǎn)自: http://www.wangchao.net.cn/bbsdetail_44678.html
數(shù)據(jù)庫測試中,常常需要對數(shù)據(jù)庫中的表進(jìn)行填充或者批量更改數(shù)據(jù)的操作,可以通過游標(biāo)來實(shí)現(xiàn)對每一個(gè)查詢記錄的操作,通過rand()函數(shù)的使用獲得隨機(jī)數(shù),將隨機(jī)數(shù)插入到表中,即可更新或填充數(shù)據(jù)表。
  這里涉及到游標(biāo)的使用,使用游標(biāo)大體需要經(jīng)過以下幾個(gè)步驟:
  1.定義游標(biāo):declare cursor
  2.打開游標(biāo):open cursor
  3.取得游標(biāo)中單個(gè)的記錄,并將記錄中的字段賦值給變量。fetch cursor
   (每取一個(gè)值,游標(biāo)會自動前移)
  4.循環(huán)讀取游標(biāo),并對每一個(gè)記錄進(jìn)行處理。fetch與fetch next 是等價(jià)的。
  5.關(guān)閉并釋放游標(biāo),close cursor, deallocate cursor。
  下面給出一個(gè)批量更改數(shù)據(jù)庫中記錄的例子,這個(gè)例子把價(jià)目表中所有料品的價(jià)格用0到100之間的數(shù)值更新,原價(jià)目表中所有料品的價(jià)格都為0,更新之后所有的價(jià)格都是0到100之間的隨機(jī)數(shù):
  use GuruERP
  -- 定義游標(biāo)MyTestCursor:
  declare MyTestCursor cursor
  for select PGI_ITM_CODE,PGI_ListPrice from TBLPRICELISTGROUPITEM
  /*從表中選取兩個(gè)字段*/
  /* 表TBLPRICELISTGROUPITEM中的字段PGI_ITM_CODE是Unique Key */
  -- 打開游標(biāo)MyTestCursor:
  open MyTestCursor
  declare @PGI_ITM_CODE char(28)
  declare @PGI_ListPrice float
  --fetch取出游標(biāo)所指的記錄,并將記錄結(jié)果存入到變量中:
  fetch from MyTestCursor into @PGI_ITM_CODE,@PGI_ListPrice
  /***************** begin of loop *******************************/
  while @@FETCH_STATUS = 0
  Begin
  update TBLPRICELISTGROUPITEM set PGI_ListPrice=floor(100*rand()) where PGI_ITM_CODE=@PGI_ITM_CODE
  fetch next from MyTestCursor into @PGI_ITM_CODE,@PGI_ListPrice
  End
  /***************** end of loop *******************************/
  select @PGI_ITM_CODE as code ,@PGI_ListPrice as price
  /***********關(guān)閉游標(biāo),釋放游標(biāo):***************/
  close MyTestCursor
  deallocate MyTestCursor
  再重復(fù)一下,使用游標(biāo)批量更改或填充數(shù)據(jù)庫,大體經(jīng)過declare,open,fetch,loop fetch,close and deallocate 五個(gè)步驟。
  備注1:
   while循環(huán)體以BEGIN開始,以END結(jié)束,當(dāng)條件為真時(shí)循環(huán)繼續(xù),為假則結(jié)束
  備注2:
   @@FETCH_STATUS是sql server中的一個(gè)變量,下面是SQL server Books online上的解釋:
  Returns the status of the last cursor FETCH statement issued against any cursor currently opened by the connection.

  Return value
  Description
  0
  FETCH statement was successful.
  -1
  FETCH statement failed or the row was beyond the result set.
  -2
  Row fetched is missing.
  Examples
  This example uses @@FETCH_STATUS to control cursor activities in a WHILE loop.
  DECLARE Employee_Cursor CURSOR FOR
  SELECT LastName, FirstName FROM Northwind.dbo.Employees
  OPEN Employee_Cursor
  FETCH NEXT FROM Employee_Cursor
  WHILE @@FETCH_STATUS = 0
  BEGIN
   FETCH NEXT FROM Employee_Cursor
  END
  CLOSE Employee_Cursor
  DEALLOCATE Employee_Cursor

使用游標(biāo)批量更改/填充數(shù)據(jù)表中的記錄值(The Using of Cursor)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本一级做人免费视频 | 久久毛片久久毛 | 国产精品毛片久久久久久久 | 国产黄色自拍 | 国产精品美女久久久久网站 | 99精品视频在线观看re | 奇米影视77| a免费国产一级特黄aa大 | 视频在线成人 | 中文字幕 二区 三区 搜查官 | 草久在线观看 | 国产精品久久久久久久久久影院 | 成人国产激情福利久久精品 | 欧美精品亚洲精品日韩经典 | 久草美女视频 | 亚洲精品不卡 | 波多野结衣亚洲 | 天天做天天爱天天综合网 | 天天爽夜夜爽人人爽 | 在线性视频 | 亚洲h片 | 久久天天躁夜夜躁狠狠躁2015 | 欧美精品成人一区二区在线观看 | 男人与牛做爰的视频 | 久久大香香蕉国产免费网vrr | 欧洲亚洲精品 | 看一级特黄a大片日本片黑人 | 日韩欧美中 | 日日摸夜夜添夜夜添影院视频 | 亚洲视频在线网 | 伊人影院综合 | 欧美精品国产一区二区 | 久久se精品一区二区国产 | 日日干夜夜拍 | 97久久久久国产精品嫩草影院 | 日韩精品一区二区三区高清 | 999久久久精品视频在线观看 | 久久最新精品 | 色综综 | 国产精品久久久久无码av | 久久亚洲综合网 |