SQL Server 2016があり、ビュー内のjson列のインデックスを作成しようとしています。json列のインデックスを作成する方法SQL Server 2016
SELECT
_id,
JSON_VALUE(trade, '$.direction') AS direction,
JSON_VALUE(trade, '$.entryprice') AS entryprice,
JSON_VALUE(trade, '$.exitprice') AS exitprice,
JSON_VALUE(trade, '$.potentialtarget') AS potentialtarget,
FORMAT(CAST(JSON_VALUE(trade, '$.entrytime') AS datetimeoffset), 'yyyy-MM-dd HH:mm:ss') AS entrytime,
FORMAT(CAST(JSON_VALUE(trade, '$.exittime') AS datetimeoffset), 'yyyy-MM-dd HH:mm:ss') AS exittime,
JSON_VALUE(trade, '$.maxfavourable') AS maxfavourable,
JSON_VALUE(trade, '$.maxagainst') AS maxagainst,
JSON_VALUE(trade, '$.signal') AS signal,
JSON_VALUE(trade, '$.instrument') AS instrument,
JSON_VALUE(trade, '$.account') AS account,
JSON_VALUE(trade, '$.quantity') AS quantity,
JSON_VALUE(trade, '$.gains') AS gains,
JSON_VALUE(trade, '$.hitedge') AS hitedge,
JSON_VALUE(trade, '$.RealizedProfitLoss') AS RealizedProfitLoss,
JSON_VALUE(trade, '$.CashValue') AS CashValue,
JSON_VALUE(trade, '$.BuyingPower') AS BuyingPower,
JSON_VALUE(trade, '$.maxagainst1ATR') AS maxagainst1ATR,
JSON_VALUE(trade, '$.maxagainst2ATR') AS maxagainst2ATR,
JSON_VALUE(trade, '$.Powerbars') AS powerbars,
JSON_VALUE(trade, '$.PowerbarsTime[0]') AS PowerbarsTime1,
JSON_VALUE(trade, '$.PowerbarsTime[1]') AS PowerbarsTime2,
JSON_VALUE(trade, '$.PowerbarsTime[2]') AS PowerbarsTime3,
JSON_VALUE(trade, '$.PowerbarsTime[3]') AS PowerbarsTime4,
JSON_VALUE(trade, '$.PowerbarsTime[4]') AS PowerbarsTime5,
JSON_VALUE(trade, '$.Powerbarsdetails') AS Powerbarsdetails,
JSON_VALUE(trade, '$.entrysignal') AS entrysignal,
JSON_VALUE(trade, '$.exitsignal') AS exitsignal
FROM
dbo.Trades
を次のように
ビュー自体は、JSON上に構築された私は、_idと日時列の一部にインデックスを構築しようとしています。私はエラーを取得する:
Create failed for Index 'NonClusteredIndex-20161124-152652'. (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Cannot create index on view 'dbo.vTrades'. It does not have a unique clustered index. (Microsoft SQL Server, Error: 1940)
ノンクラスタード・インデックスを作成するには、そのテーブルに一意のクラスタード・インデックスを作成する必要があります。それはエラーメッセージでそう言います。 –