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

主頁 > 知識庫 > SQL Server如何通過創(chuàng)建臨時表遍歷更新數(shù)據(jù)詳解

SQL Server如何通過創(chuàng)建臨時表遍歷更新數(shù)據(jù)詳解

熱門標(biāo)簽:實(shí)體店地圖標(biāo)注怎么標(biāo) 外呼系統(tǒng)會封嗎 電銷機(jī)器人 深圳 南京電銷外呼系統(tǒng)哪家好 在電子版地圖標(biāo)注要收費(fèi)嗎 萬利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 股票配資電銷機(jī)器人 地圖標(biāo)注如何弄全套標(biāo) 武漢AI電銷機(jī)器人

前言:

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

為什么不使用游標(biāo),而使用創(chuàng)建臨時表?

首先使用游標(biāo)的方式遍歷數(shù)據(jù)可能代碼上比較直觀,但是代碼比較繁瑣(聲明游標(biāo),打開游標(biāo),使用游標(biāo),關(guān)閉游標(biāo)和釋放游標(biāo))并且不符合操作集合的原則,而且也非常的耗費(fèi)性能,因此通常數(shù)據(jù)量比較大的情況下不推薦使用游標(biāo)。通過臨時表while遍歷數(shù)據(jù),更符合我們?nèi)粘5木幊趟枷氩僮骷显瓌t,性能上雖不敢保證表使用游標(biāo)要好多少,但是在把臨時表使用恰當(dāng)?shù)那疤崾悄軠p少大量的性能消耗,并且使用起來非常簡單易懂。

通過創(chuàng)建臨時表遍歷更新數(shù)據(jù):

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

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

未更新前的數(shù)據(jù)如下圖所示:

臨時表遍歷更新SQL語句:

----SQL SERVER通過臨時表遍歷數(shù)據(jù)
-- 判斷是否存在(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
 
--數(shù)據(jù)插入臨時表(select * INTO #Temp from 來源表)
SELECT ID,Name INTO #temp FROM TalkingSkillType
 
--查詢臨時表中數(shù)據(jù)
--SELECT * FROM #temp 
 
set @Num=0 --賦初始值
 
--查詢是否存在記錄,只要存在會一直循環(huán)直到不存在(WHILE EXISTS)
WHILE EXISTS(SELECT ID FROM #temp)
 BEGIN
  
   set @Num= @Num + 1
     
   -- 取值(把臨時表中的值賦值給定義的變量)
   SELECT top 1 @ID= ID,@Name=Name FROM #temp;
  
   -- 輸出操作(用于查看執(zhí)行效果)
   PRINT(@Num)
   
   --更新
   UPDATE TalkingSkillType SET Sort=@ID where id=@ID
   
  -- 刪除本次操臨時表中的數(shù)據(jù)(避免無限循環(huán))
   DELETE FROM #temp WHERE ID=@ID;
 END
 
--刪除臨時表 #temp
--drop table #temp

PRINT(@Num)輸入日志:

遍歷更新成功后結(jié)果如下圖所示:

總結(jié)

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

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

標(biāo)簽:安徽 濟(jì)源 武威 臺州 濟(jì)寧 汕頭 泰安 廣東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server如何通過創(chuàng)建臨時表遍歷更新數(shù)據(jù)詳解》,本文關(guān)鍵詞  SQL,Server,如何,通過,創(chuàng)建,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL Server如何通過創(chuàng)建臨時表遍歷更新數(shù)據(jù)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL Server如何通過創(chuàng)建臨時表遍歷更新數(shù)據(jù)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 高邑县| 南涧| 潼关县| 睢宁县| 山阳县| 章丘市| 德安县| 天等县| 德安县| 杭锦后旗| 加查县| 涡阳县| 视频| 徐闻县| 伊通| 山阳县| 南昌市| 浦城县| 黎川县| 湘乡市| 堆龙德庆县| 六枝特区| 布尔津县| 五常市| 正宁县| 阳西县| 濉溪县| 桃江县| 沛县| 巴塘县| 手游| 定远县| 宿松县| 孟州市| 永寿县| 和平县| 项城市| 浙江省| 乌苏市| 保定市| 陇西县|