【问题标题】:SQL Data Tools Visual Studio Syntax error but not in Management StudioSQL Data Tools Visual Studio 语法错误,但在 Management Studio 中没有
【发布时间】:2019-12-19 20:51:18
【问题描述】:

我已经构建了以下查询:(sn-p)

SELECT *
FROM OPENJSON (@JSON, '$.records[' + CAST(@arrayNr AS VARCHAR(10)) + ']')

变量@arrayNr 在游标中使用,因此每个循环都有不同的值来遍历我的json 中的所有记录数组。

现在,此查询运行良好,并且在 Management Studio 中没有出现错误。

当我将查询粘贴到 Visual Studio 以将存储过程添加到源代码管理时,它给了我以下错误:

SQL46010:+ 附近的语法不正确

哪个是 CAST 函数之前的第一个 +。

我正在使用 Azure SQL 数据库 (SQL Server 2017),并且 Visual Studio 设置也设置为该设置(尝试其他但没有成功)。

我是否在 SSDT 中发现了错误?我已将构建操作设置为无,它将消除错误,但我真的想构建存储过程。有小费吗?

【问题讨论】:

标签: sql json sql-server visual-studio stored-procedures


【解决方案1】:

万一其他人遇到此错误...我通过将整个查询放在一个变量中并使用 EXEC(@variable) 执行查询来解决此问题。

看起来像这样:

SET @sqlCMD = 'SELECT *
     FROM OPENJSON ('''+@JSON+''', ''$.records[' + CONVERT(VARCHAR(10),@arrayNr) + ']'')'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多