这是一种比较偷懒的方法,其实各种数据库对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
题外话
赶进度,或者项目不是高并发的时候,这么写还是可以的,主打一个 偷懒