• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > sql server中批量插入与更新两种解决方案分享(存储过程)

sql server中批量插入与更新两种解决方案分享(存储过程)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了批量插入,批量更新等相关知识,希望本文的分享对您有所帮助

对于sql 来说操作集合类型(一行一行)是比较麻烦的一件事,而一般业务逻辑复杂的系统或项目都会涉及到集合遍历的问题,通常一些人就想到用游标,这里我列出了两种方案,供大家参考

1.游标方式
代码如下:
DECLARE @Data NVARCHAR(max)
SET @Data='1,tanw,2,keenboy' --Id,Name
DECLARE @dataItem NVARCHAR(100)
DECLARE data_cursor CURSOR FOR (SELECT * FROM split(@Data,';'))
OPEN data_cursor
FETCH NEXT FROM data_cursor INTO @dataItem
WHILE @@FETCH_STATUS=0
BEGIN
DECLARE @Id INT
DECLARE @Name NVARCHAR(50)

DECLARE dataItem_cursor CURSOR FOR (SELECT * FROM split(@dataItem,','))
OPEN dataItem_cursor
FETCH NEXT FROM dataItem_cursor INTO @Id
FETCH NEXT FROM dataItem_cursor INTO @Name
CLOSE dataItem_cursor
DEALLOCATE dataItem_cursor

/*
在这里做逻辑处理,插入或更新操作 ...
www.jb51.net
*/
END
CLOSE data_cursor
DEALLOCATE data_cursor

2.While方式
代码如下:
DECLARE @Data NVARCHAR(max)
SET @Data='tanw,keenboy' --Id,Name

DECLARE @Temp TABLE
(
Id INT IDENTITY(1,1),
Name NVARCHAR(50)
)
DECLARE @Id INT
DECLARE @Name NVARCHAR(50)
DECLARE @Results NVARCHAR(MAX) SET @Results=''
INSERT INTO @Temp SELECT (SELECT * FROM split(@Data,';'))

WHILE EXISTS(SELECT * FROM @Temp)
BEGIN
SELECT TOP 1 @Id=Id,@Name=Name from @Temp
DELETE FROM @Temp where [id] = @Id
SET @Results=@Results+@Name+','
www.jb51.net
/*
在这里做逻辑处理,插入或更新操作 ...
*/
END
SELECT @Results

如果是简单单表批量插入操作的,上面方法大可不必要

作者 keenboy

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MYSQL之插入极限分析
  • mysql中迅速插入百万条测试数据的方法
  • 如何保护MySQL中重要数据的方法
  • MYSQL数据表损坏的原因分析和修复方法小结(推荐)
  • MySQL 随机查询数据与随机更新数据实现代码
  • 如何优化性能?MySQL实现批量插入以优化性能的实例详解
  • MySql批量插入来实现优化Sql执行效率的实例代码
  • MySQL 查询 批量插入 批量更新 优化的详情介绍
  • sql server中批量插入与更新两种解决方案分享(存储过程)
  • 用SQL批量插入数据的代码

相关文章

  • 2018-12-05PostgreSQL数据库切割和组合字段函数
  • 2018-12-05sql server中的decimal或者numeric的精度问题
  • 2018-12-05MySQL表名映射方案及扩展应用
  • 2018-12-05通过mysqli扩展技术实现数据库信息的检索
  • 2018-12-05Mysq中l建立测试父表、子表及测试用例归纳总结
  • 2018-12-05sql注入的相关简单实例
  • 2018-12-05详解Python如何建立数据库连接及插入数据
  • 2018-12-05教你几种在SQLServer中删除重复数据方法
  • 2017-05-11mysql 性能的检查和调优方法
  • 2017-05-11批量杀死MySQL连接的四种方法详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL非主从环境下数据一致性校验及修复程序
    • C# Mysql 查询 Rownum的解决方法
    • mysql命令行下用户管理方法分享
    • oracle 9i 图文安装/oracle 9i 安装
    • MySQL数据库优化的八种方法介绍
    • JDBC 连接MySQL实例详解_MySQL
    • 常用的MySQL命令分享
    • 最全的MySQL调试与优化技巧
    • 分享一个SQL注入的实例过程
    • mysql获得60天前unix时间思路及代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有