婷婷综合国产,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如何通過創建臨時表遍歷更新數據詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 德格县| 治多县| 浑源县| 双桥区| 黄龙县| 白沙| 阳高县| 鹿邑县| 东丽区| 泰宁县| 辉县市| 航空| 西林县| 武宁县| 长子县| 富顺县| 库伦旗| 肇源县| 东光县| 乾安县| 宣汉县| 南木林县| 潞西市| 门源| 绥阳县| 静安区| 罗源县| 南汇区| 太谷县| 丰原市| 甘泉县| 花垣县| 塔河县| 永嘉县| 东宁县| 永清县| 滨州市| 汤阴县| 永登县| 柯坪县| 盈江县|