SQL Server如何通过创建临时表遍历更新数据详解

这篇文章主要给大家介绍了关于SQL Server如何通过创建临时表遍历更新数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言:

前段时间新项目上线为了赶进度很多模块的功能都没有经过详细的测试导致了生成环境中的数据和实际数据对不上,因此需要自己手写一个数据库脚本来更新下之前的数据。(线上数据库用是SQL Server2012)关于数据统计汇总的问题肯定会用到遍历统计汇总,那么问题来了数据库中如何遍历呢?好像并没有for和foreach这种类型的功能呀,不过关于数据库遍历最常见的方法当然是大家经常会想到的游标啦,但是这次我并没有使用游标,而是通过创建临时表的方式来更新遍历数据的。

为什么不使用游标,而使用创建临时表?

首先使用游标的方式遍历数据可能代码上比较直观,但是代码比较繁琐(声明游标,打开游标,使用游标,关闭游标和释放游标)并且不符合操作集合的原则,而且也非常的耗费性能,因此通常数据量比较大的情况下不推荐使用游标。通过临时表while遍历数据,更符合我们日常的编程思想操作集合原则,性能上虽不敢保证表使用游标要好多少,但是在把临时表使用恰当的前提是能减少大量的性能消耗,并且使用起来非常简单易懂。

通过创建临时表遍历更新数据:

注意: 这里只是一个简单的临时表更新实例。

我的目的是把TalkingSkillType表中的Sort值更新成为与Id一样的值!

未更新前的数据如下图所示:

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

SQL Server如何通过创建临时表遍历更新数据详解

总结

到此这篇关于SQL Server如何通过创建临时表遍历更新数据的文章就介绍到这了,更多相关SQL Server创建临时表遍历更新数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:脚本之家

链接:https://www.jb51.net/article/196436.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/896198.html

(0)
上一篇 2025年1月4日 00:32:51
下一篇 2025年1月3日 23:49:02

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Mac系统重置PostgreSQL密码技巧及代码展示

    PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。这篇文章主要介绍了Mac系统重置PostgreSQL密码的方法示例代码,需要的朋友可以参考下 PostgreSQL是一种特性非常齐全的自由…

    数据库 2025年1月4日
    100
  • PostgreSQL技巧分享:图(graph)的递归查询实例

    这篇文章主要给大家介绍了关于PostgreSQL图(graph)的递归查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PostgreSQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 背景 在树形递归查询这篇文…

    2025年1月4日
    100
  • PostgreSQL技巧 如何获取当前日期时间

    这篇文章主要介绍了PostgreSQL 如何获取当前日期时间及注意事项,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 在开发数据库应用或者调试代码时,经常需要获取系统的…

    数据库 2025年1月4日
    100
  • postgresql中的ltree类型使用技巧

    这篇文章主要给大家介绍了关于postgresql中ltree类型使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用postgresql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 postgresql有很多比较妖…

    2025年1月4日
    100
  • MongoDB通配符索引的用法实例

    这篇文章主要给大家介绍了关于MongoDB通配符索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 指南 MongoDB在4.2 版本推出了Wildcard …

    数据库 2025年1月4日
    100
  • MongoDB 用户管理

    这篇文章主要介绍了MongoDB 如何对用户管理,帮助大家更好的理解和使用MongoDB数据库,感兴趣的朋友可以了解下。 小小最近接触了MongoDB,所以这里开始学习MongoDB,之用户管理模块的相关内容。 进入MongoDB的Shel…

    数据库 2025年1月4日
    100
  • MongoDB如何查看版本信息详解

    这篇文章主要给大家介绍了关于MongoDB如何查看版本信息的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 下面总结一下,如何查看MongoDB的版本信息 1:…

    数据库 2025年1月4日
    100
  • Centos7 yum安装mongodb实现步骤详解

    这篇文章主要介绍了Centos7 yum安装mongodb实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由…

    数据库 2025年1月4日
    100
  • datagrip 修改或更新不能自动提交的问题

    这篇文章主要介绍了datagrip 修改或更新不能自动提交的问题,本文给大家分享DataGrip激活码,需要的朋友可以参考下 datagrip是JetBrains 出品,智能提示和界面和idea一样好用,但最初使用时,不熟悉软件操作,导致软…

    2025年1月4日
    100
  • SQL语句中公共字段的自动填充方法

    这篇文章主要给大家介绍了关于SQL语句中公共字段的自动填充方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 1. 前言 我们在设计数据库的时候一定会带上新增、更新的时…

    数据库 2025年1月4日
    100

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信