婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL Server如何通過創建臨時表遍歷更新數據詳解

SQL Server如何通過創建臨時表遍歷更新數據詳解

熱門標簽:實體店地圖標注怎么標 外呼系統會封嗎 電銷機器人 深圳 南京電銷外呼系統哪家好 在電子版地圖標注要收費嗎 萬利達綜合醫院地圖標注點 股票配資電銷機器人 地圖標注如何弄全套標 武漢AI電銷機器人

前言:

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

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

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

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

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

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

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

臨時表遍歷更新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

PRINT(@Num)輸入日志:

遍歷更新成功后結果如下圖所示:

總結

到此這篇關于SQL Server如何通過創建臨時表遍歷更新數據的文章就介紹到這了,更多相關SQL Server創建臨時表遍歷更新數據內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • SQL server 自增ID--序號自動增加的字段操作
  • SQL Server中identity(自增)的用法詳解
  • SqlServer生成連續數字根據指定的數字操作
  • SQL Server 開窗函數 Over()代替游標的使用詳解
  • SQL Server中row_number函數的常見用法示例詳解
  • 解決sql server保存對象字符串轉換成uniqueidentifier失敗的問題

標簽:安徽 濟源 武威 臺州 濟寧 汕頭 泰安 廣東

巨人網絡通訊聲明:本文標題《SQL Server如何通過創建臨時表遍歷更新數據詳解》,本文關鍵詞  SQL,Server,如何,通過,創建,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server如何通過創建臨時表遍歷更新數據詳解》相關的同類信息!
  • 本頁收集關于SQL Server如何通過創建臨時表遍歷更新數據詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 班戈县| 张掖市| 清流县| 旅游| 玉屏| 中山市| 天津市| 龙江县| 微山县| 平乡县| 黔西县| 平湖市| 翁牛特旗| 噶尔县| 常德市| 阿勒泰市| 方正县| 宜君县| 平南县| 千阳县| 仪陇县| 科尔| 乌拉特后旗| 成安县| 安庆市| 大同县| 随州市| 延津县| 澜沧| 天峻县| 太仓市| 本溪市| 汝城县| 南充市| 张北县| 宁化县| 宜都市| 绍兴市| 中山市| 明溪县| 高淳县|