1、建立test數(shù)據(jù)庫;
2、創(chuàng)建test1數(shù)據(jù)表;
test1表屬性如下:
其中,ID字段設(shè)置為標(biāo)識增量,增量種子為1;
這個(gè)實(shí)例是實(shí)現(xiàn)從第一行數(shù)據(jù)開始,將每一行最后一個(gè)字段值加下一行第二個(gè)字段值再減去第三個(gè)字段值,并用獲得的新值更新當(dāng)前行最后一個(gè)字段值,循環(huán)執(zhí)行,直到所有記錄均完成更新為止。(這段代碼是我在MSDN上得到的啟發(fā),感謝MSDN上幫助過我的人,你們的幫助使我進(jìn)步很多)
腳本代碼如下:
USE[TEST] GO --定義所有需要的變量 --@i 存放當(dāng)前ID號 --@Count 存放最后一個(gè)ID號 --@TempID 存放ID標(biāo)識(存在為1,不存在為0) --@Cuna 存放計(jì)算后的庫存數(shù) DECLARE @i INT,@Count INT,@TempID INT,@Cuna INT --實(shí)現(xiàn)獲得最后一個(gè)ID號 SELECT @Count=ID FROM TEST1 --讀取第一條記錄的ID號保存到@i中 SELECT TOP 1 @i=ID FROM test1 --更新第一條記錄中的CUN字段值 UPDATE TEST1 SET CUN=JIN-CHU WHERE ID=@i --讀取更新后的CUN字段值賦值給臨時(shí)變量@Cuna SELECT @Cuna=CUN FROM TEST1 WHERE ID=@i --@i自增1 SET @i=@i+1 --循環(huán)判斷是否到達(dá)最后一條記錄 WHILE(@i<=@Count) BEGIN --查找與ID與@i相等的記錄 SELECT @TempID=COUNT(1) FROM TEST1 WHERE ID=@i BEGIN --記錄不存在@i自增1 IF(@TempID=0) SET @i=@i+1 ELSE --記錄存在更新記錄 UPDATE TEST1 SET CUN=@Cuna+JIN-CHU WHERE ID=@i --讀取更新后的CUN字段值 SELECT @Cuna=CUN FROM TEST1 WHERE ID=@i END BEGIN --判斷是否到達(dá)最后一條記錄 IF(@i>@Count) --到達(dá)最后一條記錄時(shí)執(zhí)行退出 BREAK ELSE --為到達(dá)最后一條記錄時(shí)@i自增1 SET @i=@i+1 --繼續(xù)返回WHILE處執(zhí)行WHILE循環(huán)體語句 CONTINUE END END
新聞熱點(diǎn)
疑難解答
圖片精選