下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > MS_SQL > SQL開發知識:SQL Server如何通過創建臨時表遍歷更新數據詳解

          SQL開發知識:SQL Server如何通過創建臨時表遍歷更新數據詳解

          時間:2024-03-12 20:33作者:下載吧人氣:30

          前言:

          前段時間新項目上線為了趕進度很多模塊的功能都沒有經過詳細的測試導致了生成環境中的數據和實際數據對不上,因此需要自己手寫一個數據庫腳本來更新下之前的數據。(線上數據庫用是SQL Server2012)關于數據統計匯總的問題肯定會用到遍歷統計匯總,那么問題來了數據庫中如何遍歷呢?好像并沒有for和foreach這種類型的功能呀,不過關于數據庫遍歷最常見的方法當然是大家經常會想到的游標啦,但是這次我并沒有使用游標,而是通過創建臨時表的方式來更新遍歷數據的。

          為什么不使用游標,而使用創建臨時表?

          首先使用游標的方式遍歷數據可能代碼上比較直觀,但是代碼比較繁瑣(聲明游標,打開游標,使用游標,關閉游標和釋放游標)并且不符合操作集合的原則,而且也非常的耗費性能,因此通常數據量比較大的情況下不推薦使用游標。通過臨時表while遍歷數據,更符合我們日常的編程思想操作集合原則,性能上雖不敢保證表使用游標要好多少,但是在把臨時表使用恰當的前提是能減少大量的性能消耗,并且使用起來非常簡單易懂。

          通過創建臨時表遍歷更新數據:

          注意:這里只是一個簡單的臨時表更新實例。

          我的目的是把TalkingSkillType表中的Sort值更新成為與Id一樣的值!

          未更新前的數據如下圖所示:

          SQL開發知識:SQL Server如何通過創建臨時表遍歷更新數據詳解

          臨時表遍歷更新SQL語句:

          —-SQL SERVER通過臨時表遍歷數據
          — 判斷是否存在(object(‘objectname’,‘type’))
          IF OBJECT_ID(‘tempdb.dbo.#temp’,’U’) IS NOT NULL DROP TABLE dbo.#temp;

          GO
          — 聲明變量
          DECLARE
          @ID AS INT,
          @Name AS VARCHAR(50),
          @Num AS INT

          –數據插入臨時表(select * INTO #Temp from 來源表)
          SELECT ID,Name INTO #temp FROM TalkingSkillType

          –查詢臨時表中數據
          –SELECT * FROM #temp

          set @Num=0 –賦初始值

          –查詢是否存在記錄,只要存在會一直循環直到不存在(WHILE EXISTS)
          WHILE EXISTS(SELECT ID FROM #temp)
          BEGIN

          set @Num= @Num + 1

          — 取值(把臨時表中的值賦值給定義的變量)
          SELECT top 1 @ID= ID,@Name=Name FROM #temp;

          — 輸出操作(用于查看執行效果)
          PRINT(@Num)

          –更新
          UPDATE TalkingSkillType SET Sort=@ID where id=@ID

          — 刪除本次操臨時表中的數據(避免無限循環)
          DELETE FROM #temp WHERE ID=@ID;
          END

          –刪除臨時表 #temp
          –drop table #temp

          標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 日韩三级一区二区| 丰满人妻一区二区三区免费视频| 亚洲av色香蕉一区二区三区| 无码人妻一区二区三区免费| 精品一区二区三区在线视频| 国产微拍精品一区二区| 精品无码AV一区二区三区不卡| 狠狠做深爱婷婷综合一区| 无码一区二区三区亚洲人妻| 丝袜美腿一区二区三区| 中文字幕乱码人妻一区二区三区| 国产精品伦一区二区三级视频| 亚洲视频一区二区| 全国精品一区二区在线观看| 无码视频一区二区三区| 亚洲sm另类一区二区三区| 日本无卡码一区二区三区| 亚洲国产精品乱码一区二区 | 日亚毛片免费乱码不卡一区| 国产伦精品一区二区三区不卡| 亚洲日本乱码一区二区在线二产线| 久久精品国产一区| 成人精品一区二区三区不卡免费看| 午夜视频久久久久一区 | 四虎在线观看一区二区| 一区二区三区高清| 亚洲av色香蕉一区二区三区 | 高清一区二区三区日本久| 中文字幕一区二区区免| 韩日午夜在线资源一区二区| 好爽毛片一区二区三区四| 日本一区二区三区在线观看| 亚洲综合一区二区国产精品| 奇米精品视频一区二区三区| 波多野结衣一区二区| 国产麻豆媒一区一区二区三区| 波多野结衣精品一区二区三区| 高清一区高清二区视频| 亚洲永久无码3D动漫一区| 国产一区二区三区91| 蜜臀AV一区二区|