SQL Server如何通过创建临时表遍历更新数据详解
短视频,自媒体,达人种草一站处事 这篇文章首要给各人先容了关于SQL Server怎样通过建设姑且表遍历更新数据的相干资料,文中通过示例代码先容的很是具体,对各人的进修可能事变具有必然的参考进修代价,必要的伴侣们下面跟着小编来一路进修进修吧 媒介: 前段时刻新项目上线为了赶进度许多模块的成果都没有颠末具体的测试导致了天生情形中的数据和现实数据对不上,因此必要本技艺写一个数据库脚原来更新下之前的数据。(线上数据库用是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 总结 到此这篇关于SQL Server怎样通过建设姑且表遍历更新数据的文章就先容到这了,更多相干SQL Server建设姑且表遍历更新数据内容请搜刮剧本之家早年的文章或继承赏识下面的相干文章但愿各人往后多多支持剧本之家! (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |