【问题标题】:SSDT OPENJSON Incorrect warning messageSSDT OPENJSON 不正确的警告信息
【发布时间】:2016-10-20 05:40:15
【问题描述】:

以下函数给出 SSDT 14.0.60923.0 中的警告 SQL71502:函数:[dbo].[fn_CheckPolicy] 在 Visual Studio 2015 中对对象 [dbo].[Users].[d] 的引用不正确。

有没有办法解决这个问题,还是 SSDT 中的一个错误?

CREATE FUNCTION [dbo].[fn_CheckPolicy] (@NameIdentifier nvarchar(128),
                                        @Id             uniqueidentifier)
RETURNS @returntable TABLE (
  [Id]  uniqueidentifier,
  [Acl] int )
AS
  BEGIN
      WITH cte
           AS (SELECT 1                                 AS [Level],
                      JSON_VALUE(d.[value], '$.id')     AS 'Id',
                      JSON_VALUE(d.[value], '$.acl')    AS 'acl',
                      JSON_VALUE(d.[value], '$.type')   AS 'type',
                      JSON_QUERY(d.[value], '$.s')      AS 'data'
               FROM   [dbo].[Users] u
                      CROSS apply OPENJSON(JSON_QUERY(u.[Policy], '$.c')) d
               WHERE  u.[NameIdentifier] = @nameIdentifier
               UNION ALL
               SELECT [Level] + 1,
                      ISNULL(JSON_VALUE(d.[value], '$.id'), '00000000-0000-0000-0000-000000000000'),
                      JSON_VALUE(d.[value], '$.acl'),
                      JSON_VALUE(d.[value], '$.type')        'type',
                      JSON_QUERY(d.[value], '$.a')           'data'
               FROM   cte
                      CROSS apply OPENJSON(JSON_QUERY([data], '$')) d)
      INSERT INTO @returnTable
      SELECT [Id],
             CONVERT(int, CONVERT(varbinary, [Acl], 1))
      FROM   cte
      WHERE  [Id] = @id

      IF @@ROWCOUNT = 0
        INSERT INTO @returntable
                    ([Id],[Acl])
        VALUES      (@id,'0xff')

      RETURN
  END 

【问题讨论】:

    标签: visual-studio-2015 sql-server-data-tools sql-server-2016


    【解决方案1】:

    这看起来像是 SSDT 中处理 OPENJSON 的错误。在 SSDT 的最新版本中,这方面有一些错误修复,但似乎这是另一个问题。您能否在https://connect.microsoft.com/SQLServer/feedback/CreateFeedback.aspx 使用“开发人员工具(SSDT、BIDS 等)”类别为此提交一个 Connect 错误?谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      相关资源
      最近更新 更多