sql之创建 View 和 For Json 子句

EasonJim 阅读:29 2025-01-19 22:14:33 评论:0

SQL Server 2016 ,我可以运行这个简单的查询:

SELECT  colA, colB, json_query(infoJson) AS Expr1 
FROM    dbo.Table_1  
FOR     json auto 

我什至可以将它包装在一个存储过程中。它运行良好。

但是当我试图根据该语句创建 View 时,有些奇怪(至少对我而言):
CREATE VIEW [dbo].[View_1] 
AS 
SELECT   colA, colB, json_query(infoJson) AS Expr1 
FROM     dbo.Table_1  
FOR      json auto 

这是我得到的错误:

Msg 4511, Level 16, State 1, Procedure View_1, Line 5 [Batch Start Line 9] Create View or Function failed because no column name was specified for column 1.



但是我一评论 --for json auto , VIEW按预期创建。

为什么?我真的很想拥有 FOR JSON在我的 sql View 中。

请您参考如下方法:

FOR XML | JSON AUTO返回单列(字符 LOB)。因此,您需要修改 SELECT 语句以在 View 中返回单个列,例如:

CREATE VIEW [dbo].[View_1] 
AS 
SELECT ( 
SELECT   colA, colB, json_query(infoJson) AS Expr1 
FROM     dbo.Table_1  
FOR      json auto 
) as X 


标签:json
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号