1、建立test數據庫;
2、創建test1數據表;
test1表屬性如下:
其中,ID字段設置為標識增量,增量種子為1;
這個實例是實現從第一行數據開始,將每一行最后一個字段值加下一行第二個字段值再減去第三個字段值,并用獲得的新值更新當前行最后一個字段值,循環執行,直到所有記錄均完成更新為止。(這段代碼是我在MSDN上得到的啟發,感謝MSDN上幫助過我的人,你們的幫助使我進步很多)
腳本代碼如下:
USE[TEST] GO --定義所有需要的變量 --@i 存放當前ID號 --@Count 存放最后一個ID號 --@TempID 存放ID標識(存在為1,不存在為0) --@Cuna 存放計算后的庫存數 DECLARE @i INT,@Count INT,@TempID INT,@Cuna INT --實現獲得最后一個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字段值賦值給臨時變量@Cuna SELECT @Cuna=CUN FROM TEST1 WHERE ID=@i --@i自增1 SET @i=@i+1 --循環判斷是否到達最后一條記錄 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 --判斷是否到達最后一條記錄 IF(@i>@Count) --到達最后一條記錄時執行退出 BREAK ELSE --為到達最后一條記錄時@i自增1 SET @i=@i+1 --繼續返回WHILE處執行WHILE循環體語句 CONTINUE END END
新聞熱點
疑難解答