SQL 2019 之 JSON 指令試用紀錄

自 SQL Server 2016 開始支援 JSON 指令,決定花點時間正式試用看看。

參考文件

預計使用情境

當然是存表單這種典型的半結構化資料體。

表單CRUD

增刪查改是基本。

表單索引

因為表單有大量查詢需求故一定要上索引。索引目標不可能是整體JSON,只能是其中的單號或日期欄位。

變更表單狀態

表單基本狀態最少有:DRAFT(APPLY) → COMMIT → APPROVED

在更新狀態時是否不必全部更新,只更新其中兩、三個欄位,比如:狀態、異動日期、異動人員。

試用紀錄

一開始就要決定好表單的資料結構。

試用指令紀錄

建立表單檔,以 JSON 格式儲存。

也能之後再加入新的 Computed Field

ISJSON(expression) 檢查是否符合 JSON 格式,若不符合所有 JSON 操作指令都會失靈。

新增一筆表單資料

刪除一筆,跟一般 SQL 刪除指令一樣。

JSON_VALUE(expression,path) 從 JSON 字串擷取純量值。注意:此指令只能取純量值。

JSON_MODIFY(expression,path,newValue) 從 JSON 字串更新純量值。

更新 JOSN 多個數值

JSON_QUERY(expression,path) 從 JSON 字串擷取物件或陣列。注意:此指令無法取純量值。


搭配 CROSS APPLY OPENSJON 交叉查詢 JSON string array。

補充 on 2025-09-12

目的:設計一欄伉 RoleList 放員工角色清單。 下一SQL查詢所有 "Sales" 名單。

RoleList 的格式為 JSON string array。

附上測試資料與查詢結果


其他常用指令

  • OPENJSON --- 把 JSON Array 轉成 DataTable。

  • FOR JSON PATH --- 把 DataTable 轉成 JSON。

在 SQL Server 2022 以後才支援的JSON 指令

  • JSON_PATH_EXISTS

  • JSON_OBJECT

  • JSON_ARRAY

(EOF)

Last updated