1、定义json字符串并创建所需的临时表
-- 获取的json字符串
DECLARE @jsonstr NVARCHAR(max) ='[{"no": "001","result": "OK"},{"no": "002","result": "NG"}]'
-- 创建临时表
CREATE TABLE #tmpParamert(
id [INT] IDENTITY (1,1) NOT NULL,
no NVARCHAR(20),
result NVARCHAR(10)
)
2、解析Json字符串并新增到临时表
-- 插入到临时表
INSERT INTO #tmpParamert(no,result)
SELECT JSON_VALUE(value,'$.no') AS no,JSON_VALUE(value,'$.result') AS result
FROM openjson(@jsonstr) AS A
3、查询临时表 或 获取表中某条数据
-- 查询临时表
-- select * from #tmpParamert
declare @no NVARCHAR(20);
declare @result NVARCHAR(10);
declare @count int;
declare @i int;
select @count = count(1) from #tmpParamert;
set @i = 1;
--循环临时表取数据
WHILE (@count >= @i)
BEGIN
SELECT @no=no,@result=result FROM #tmpParamert WHERE id = @i;
-- 中间判断相关内容等
SET @i = @i + 1;
END
4、最后用完将临时表删除
--最后用完需删除临时表
DROP TABLE #tmpParamert;
附:若使用变量表则可忽略最后一步删除动作,例如:
-- 创建临时表
Declare @tmpParamert TABLE(
id [INT] IDENTITY (1,1) NOT NULL,
no NVARCHAR(20),
result NVARCHAR(10)
)