SSDT OPENJSON 不正确的警告消息
SSDT OPENJSON Incorrect warning message
下面的函数给出
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
这看起来像是在 SSDT 中处理 OPENJSON 的错误。在最近版本的 SSDT 中修复了这方面的一些错误,但这似乎是另一个问题。您能否使用类别 "Developer Tools (SSDT, BIDS, etc.)" 在 https://connect.microsoft.com/SQLServer/feedback/CreateFeedback.aspx 上为此提交一个连接错误?谢谢!
下面的函数给出 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
这看起来像是在 SSDT 中处理 OPENJSON 的错误。在最近版本的 SSDT 中修复了这方面的一些错误,但这似乎是另一个问题。您能否使用类别 "Developer Tools (SSDT, BIDS, etc.)" 在 https://connect.microsoft.com/SQLServer/feedback/CreateFeedback.aspx 上为此提交一个连接错误?谢谢!