当前位置: 首页 > article >正文

一种在SQL Server中传递多行数据的方法

这是一种比较偷懒的方法,其实各种数据库对Json 支持的很好。sql server 、oracle都不错。所以可以直接传json

declare @这是一个json varchar(max)
set @这是一个json='{"data":[{"code":"1","name":"啥1"},{"code":"2","name":"啥2"},{"code":"3","name":"啥3"},{"code":"4","name":"啥4"},{"code":"5","name":"啥5"}]}'
 

这一个普普通通的json ,5行 2列的数据

{"data": [{"code": "1","name": "啥1"},{"code": "2","name": "啥2"},{"code": "3","name": "啥3"},{"code": "4","name": "啥4"},{"code": "5","name": "啥5"}]
}

查询

查询很简单
select * from OPENJSON(@这是一个json,'$.data') WITH (  code  varchar(50) '$.code'  ,name  varchar(50) '$.name') 

结果很清晰

插入

插入很容易

--插入多行到表
declare @t table( code  varchar(50),name  varchar(50) )


insert into @t(code,name) select code,name from OPENJSON(@这是一个json,'$.data') WITH (  code  varchar(50) '$.code'  ,name  varchar(50) '$.name') 
select @@ROWCOUNT as 插入行数

生成新的json

也是一句话的事情

--生成新的json
select (select * from @t for json path, root('data')) as 新的json

全部代码

declare @这是一个json varchar(max)
set @这是一个json='{"data":[{"code":"1","name":"啥1"},{"code":"2","name":"啥2"},{"code":"3","name":"啥3"},{"code":"4","name":"啥4"},{"code":"5","name":"啥5"}]}'--查询
select * from OPENJSON(@这是一个json,'$.data') WITH (  code  varchar(50) '$.code'  ,name  varchar(50) '$.name') --插入多行到表
declare @t table( code  varchar(50),name  varchar(50) )
insert into @t(code,name) select code,name from OPENJSON(@这是一个json,'$.data') WITH (  code  varchar(50) '$.code'  ,name  varchar(50) '$.name') 
select @@ROWCOUNT as 插入行数--生成新的json
select (select * from @t for json path, root('data')) as 新的json

题外话

赶进度,或者项目不是高并发的时候,这么写还是可以的,主打一个 偷懒

http://www.lryc.cn/news/2397810.html

相关文章:

  • 【Docker 从入门到实战全攻略(一):核心概念 + 命令详解 + 部署案例】
  • github 提交失败,连接不上
  • 系统架构设计师(一):计算机系统基础知识
  • VMware安装Ubuntu全攻略
  • 清理 pycharm 无效解释器
  • 精益数据分析(92/126):指标基准化——如何判断你的数据表现是否足够优秀
  • 手机如何压缩文件为 RAR 格式:详细教程与工具推荐
  • Elasticsearch集群管理的相关工具介绍
  • 基于多尺度卷积和扩张卷积-LSTM的多变量时间序列预测
  • Java 注解式限流教程(使用 Redis + AOP)
  • C# XAML 基础:构建现代 Windows 应用程序的 UI 语言
  • Linux运维笔记:服务器感染 netools 病毒案例
  • (面试)获取View宽高的几种方式
  • 【Linux】进程地址空间揭秘(初步认识)
  • 设计模式——备忘录设计模式(行为型)
  • 吴恩达:构建自动化评估并不需要大量投入,从一些简单快速的示例入手,然后逐步迭代!
  • 鸿蒙OSUniApp内存管理优化实战:从入门到精通#三方框架 #Uniapp
  • Vue-5-基于JavaScript和plotly.js绘制数据分析类图表
  • UI自动化测试的革新,新一代AI工具MidScene.js实测!
  • StarRocks的几种表模型
  • 4. Qt对话框(2)
  • 2025-5-31-C++ 学习 字符串(终)
  • Android Studio 2022.2.1.20 汉化教程
  • 第17讲、odoo18可视化操作代码生成模块
  • golang -- slice 底层逻辑
  • SOC-ESP32S3部分:26-物联网MQTT连云
  • 从前端工程化角度解析 Vite 打包策略:为何选择 Rollup 而非 esbuild。
  • 三层架构 vs SOA vs 微服务:该选谁?
  • 制造业的未来图景:超自动化与劳动力转型的双重革命
  • 使用Haproxy搭建Web群集