【发布时间】:2016-06-06 13:51:41
【问题描述】:
使用SQL Server 2016,我可以运行这个简单的查询:
SELECT colA, colB, json_query(infoJson) AS Expr1
FROM dbo.Table_1
FOR json auto
我什至可以将它包装在一个存储过程中。而且运行良好。
但是当我试图从该陈述中创建一个视图时,有些奇怪(至少对我而言):
CREATE VIEW [dbo].[View_1]
AS
SELECT colA, colB, json_query(infoJson) AS Expr1
FROM dbo.Table_1
FOR json auto
这是我得到的错误:
消息 4511,级别 16,状态 1,过程 View_1,第 5 行 [批处理开始第 9 行] 创建视图或函数失败,因为没有为第 1 列指定列名。
但只要我评论--for json auto,VIEW 就会按预期创建。
为什么?我真的很希望在我的 sql 视图中有 FOR JSON。
【问题讨论】:
-
您的视图希望您为 json 列命名。
-
不是这样的。关键是我无法将“for json”应用到视图中。
-
错误具有误导性
-
当我说“...按预期创建”时,我需要纠正自己 视图刚刚创建但未按预期创建,因为 FOR JSON 会有所作为
标签: sql json sql-server-2016