Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server 2016中更改JSON列名_Sql_Sql Server - Fatal编程技术网

如何在sql server 2016中更改JSON列名

如何在sql server 2016中更改JSON列名,sql,sql-server,Sql,Sql Server,如何将列名“JSON_F52…”更改为任意(例如SalesOrder) 我认为最终结果将不会有任何与该名称相关的内容,它是存储结果的临时名称 如果要将结果生成一个变量 JSON的子句的输出类型为NVARCHAR(MAX),因此您可以将其分配给任何变量,如下例所示 DECLARE @SalesOrder NVARCHAR(MAX) = (SELECT TOP 10 * FROM Sales.SalesOrderHeader FOR JSON AUTO) 然后从@salesforder中选择 如果

如何将列名“JSON_F52…”更改为任意(例如SalesOrder)


我认为最终结果将不会有任何与该名称相关的内容,它是存储结果的临时名称

如果要将结果生成一个变量 JSON的
子句的输出类型为
NVARCHAR(MAX)
,因此您可以将其分配给任何变量,如下例所示

DECLARE @SalesOrder NVARCHAR(MAX) = (SELECT TOP 10 * FROM Sales.SalesOrderHeader FOR JSON AUTO)
然后
从@salesforder中选择


如果要将其存储在文件中,请选中此复选框,将json building SELECT包装到另一个SELECT中:

SELECT (
      SELECT SalesOrderNumber AS 'Order.Number',
             OrderDate AS 'Order.Date'
        FROM Sales.SalesOrderHeader
         FOR JSON PATH
) AS SalesOrder

你认为这些答案中哪一个更快?这是我使用的方法。我来到这里是为了寻找一种可能的替代方法。这种方法比
Declare
更快,因为不需要将数据设置为变量。但是,将json类型作为object更改为string。是的,这个解决方案也为我提供了窍门,使我不必首先在代码中写出大量json逻辑(仍然支持ASP代码),而这样做可以删除列名(
json\u F52……
),json结果将保留一个空字符串作为索引键
:[]
这是一种糟糕的做法。值得注意的是,这将打破JavaScript中的点表示法属性访问器。在我看来,更好的解决方案是将
SELECT
包装在另一个
SELECT
中,如下面的
michald
所述。