经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
存储过程接收JSON格式数据
来源:cnblogs  作者:Insus.NET  时间:2019/5/27 8:47:07  对本文有异议

前端有可能一次性上传多笔记录,并使用JSON序列化。

现在在MS SQL Server 2016版本上,可以直接处理JSO数据。

如下面的前端序列化的数据:

  1. DECLARE @json_string NVARCHAR(MAX) = N'
  2. {
  3. "catalog":[
  4. {"ID":23394,"Item":"I32-GG443-QT0098-0001","Category":"S","Qty":423.65},
  5. {"ID":45008,"Item":"I38-AA321-WS0098-0506","Category":"B","Qty":470.87},
  6. {"ID":14350,"Item":"K38-12321-5456UD-3493","Category":"B","Qty":200.28},
  7. {"ID":64582,"Item":"872-RTDE3-Q459PW-2323","Category":"T","Qty":452.44},
  8. {"ID":23545,"Item":"098-SSSS1-WS0098-5526","Category":"S","Qty":500.00},
  9. {"ID":80075,"Item":"B78-F1H2Y-5456UD-2530","Category":"T","Qty":115.06},
  10. {"ID":53567,"Item":"PO0-7G7G7-JJY098-0077","Category":"Q","Qty":871.33},
  11. {"ID":44349,"Item":"54F-ART43-6545NN-2514","Category":"S","Qty":934.39},
  12. {"ID":36574,"Item":"X3C-SDEWE-3ER808-8764","Category":"Q","Qty":607.88},
  13. {"ID":36574,"Item":"RVC-43ASE-H43QWW-9753","Category":"U","Qty":555.19},
  14. {"ID":14350,"Item":"K38-12321-5456UD-3493","Category":"B","Qty":200.28},
  15. {"ID":64582,"Item":"872-RTDE3-Q459PW-2323","Category":"T","Qty":452.44},
  16. {"ID":80075,"Item":"B78-F1H2Y-5456UD-2530","Category":"T","Qty":115.06},
  17. {"ID":53567,"Item":"PO0-7G7G7-JJY098-0077","Category":"Q","Qty":871.33},
  18. {"ID":44349,"Item":"54F-ART43-6545NN-2514","Category":"S","Qty":934.39},
  19. {"ID":44349,"Item":"54F-ART43-6545NN-2514","Category":"S","Qty":934.39},
  20. {"ID":36574,"Item":"X3C-SDEWE-3ER808-8764","Category":"Q","Qty":607.88}]
  21. }
  22. '
Source Code

 

在数据库中,创建一张表来存储这些数据:

 

  1. CREATE TABLE [dbo].[Parts Catalog]
  2. (
  3. [ID] INT,
  4. [Item] NVARCHAR(40),
  5. [Category] NVARCHAR(25),
  6. [Qty] DECIMAL(18,2)
  7. )
  8. GO
Source Code

 

创建存储过程来接收并处理JSON数据:

 

  1. CREATE PROCEDURE [dbo].[usp_Parts_Catalog_Insert]
  2. (
  3. @json_string NVARCHAR(MAX)
  4. )
  5. AS
  6. INSERT INTO [dbo].[Parts Catalog]([ID],[Item],[Category],[Qty])
  7. SELECT [ID],[Item],[Category],[Qty] FROM OPENJSON(@json_string,'$.catalog')
  8. WITH
  9. (
  10. [ID] INT '$.ID',
  11. [Item] NVARCHAR(40) '$.Item',
  12. [Category] NVARCHAR(25) '$.Category',
  13. [Qty] DECIMAL(18,2) '$.Qty'
  14. )
  15. GO
Source Code

 

执行存储过程,并查询表数据:

 

以前上传多笔记录,均是使用表函数来处理,现在可以使用OPENJSON方法来进行。

 

原文链接:http://www.cnblogs.com/insus/p/10913011.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号