如何在SQL Server 2014中使用OPENJSON或兼容的等效项?

时间:2018-11-07 19:24:50

标签: json sql-server sql-server-2014 sql-server-2017

I am aware OPENJSON is a new feature in SQL Server 2016.

我目前具有下面显示的用于SQL Server 2017的存储过程,但是我无法找到使它在SQL Server 2014上运行或找到兼容的等效存储的方法。

我得到的当前错误如下:

  

关键字“ WITH”附近的语法不正确。

     

关键字“ with”附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止。

我的代码:

CREATE PROCEDURE ProcedureName 
    @submissionID INT
AS
    DECLARE @submission_FormDefn AS INT
    DECLARE @Defn_json AS NVARCHAR(MAX)
    DECLARE @Subm_json AS NVARCHAR(MAX) 

    SELECT  
        @Subm_json = [jsonPost],  
        @submission_FormDefn = [FormDefn_Id] 
    FROM 
        form_submissions 
    WHERE
        id = @submissionID

     SET @Defn_json = (SELECT [data] 
                       FROM form_defns 
                       WHERE id = @submission_FormDefn)

     SELECT 
         dd.name, dd.label, dd.type, V.VALUE 
     FROM
         [dbo].[form_submissions_VALUES] V
     INNER JOIN 
         OPENJSON(@Defn_json) WITH (name varchar(MAX) '$.name',
                                    label varchar(MAX) '$.label',
                                    type varchar(MAX) '$.type') dd ON V.field = dd.name
     WHERE  
         type IN ('one', 'two', 'three') 
         AND v.FormSubmission_Id = @submissionID
GO

0 个答案:

没有答案