본문 바로가기

db/mssql

[Mssql] JSON_MODIFY 추가, 수정

반응형

Mssql JSON_MODIFY

Mssql JSON 추가, 수

 

MS SQL Server의 JSON_MODIFY 함수는 JSON 문자열의 값을 수정하는 데 사용됩니다. 이 함수를 사용하면 JSON 객체 내의 특정 키의 값을 변경하거나, 새로운 키-값 쌍을 추가하거나, 배열의 요소를 수정할 수 있습니다.

기본 사용법

 

JSON_MODIFY 함수는 세 개의 필수 인수를 사용합니다.

  • json_string : 수정할 JSON 문자열입니다.
  • path : 수정할 JSON 객체 또는 배열의 위치를 지정하는 경로입니다.
  • new_value : 수정할 값입니다.
JSON_MODIFY(json_string, path, new_value)

※ 현재 없는 키값 path 입력 시 새롭게 추가됩니다.

 

다음은 JSON_MODIFY 함수를 사용하여 JSON 데이터를 수정하는 다양한 예제입니다.

스칼라 값 수정
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
    "info": {
        "address": "서울",
        "phone": "010-1234-5678"
    }
}';

-- 객체 내 값 수정
SET @json = JSON_MODIFY(@json, '$.info.address', '부산');

SELECT @json;
새로운 키값 추가
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
    "info": {
        "address": "서울",
        "phone": "010-1234-5678"
    }
}';

-- 객체 내 값 수정
SET @json = JSON_MODIFY(@json, '$.info.address', '부산');
-- 새로운 키-값 추가
SET @json = JSON_MODIFY(@json, '$.country', '대한민국');

SELECT @json;


-- 아래 결과
{
    "info": {
        "address": "서울",
        "phone": "010-1234-5678"
    },
    "country":"대한민국"
}
배열 요소 수정

 

※ 배열 값은 0부터 시작합니다.

DECLARE @json NVARCHAR(MAX);
SET @json = N'{
    "skills": ["SQL", "C#", "JavaScript"]
}';

-- 배열 요소 수정
SET @json = JSON_MODIFY(@json, '$.skills[1]', 'react');

SELECT @json;

--아래 결과
{
    "skills": ["SQL", "react", "JavaScript"]
}
객체 내 객체 수정
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
    "info": {
        "address": "서울",
        "phone": "010-1234-5678"
    }
}';

-- 객체 내 값 수정
SET @json = JSON_MODIFY(@json, '$.info.address', '부산');

SELECT @json;

--아래 결과
{
    "info": {
        "address": "부산",
        "phone": "010-1234-5678"
    }
}
  • JSON_MODIFY 함수는 SQL Server 2016 이상 버전에서만 사용할 수 있습니다.
  • 경로를 잘못 지정하면 NULL 값이 반환될 수 있습니다.
  • JSON_MODIFY 함수는 원본 JSON 문자열을 변경하지 않고, 수정된 JSON 문자열을 반환합니다.
  • JSON_MODIFY 함수는 JSON 데이터의 구조를 변경할 수 없습니다. 예를 들어, 객체를 배열로 변경하거나, 배열을 객체로 변경할 수 없습니다.
반응형

'db > mssql' 카테고리의 다른 글

[Mssql] DATEPART 특정 날짜 요일 검색  (0) 2025.03.22
[Mssql] 1년 날짜 입력  (0) 2025.03.22
[Mssql] Json 파싱  (0) 2025.03.22
MSSQL 버전 확인 하는 방법  (0) 2024.12.02
mssql 테이블 설명  (1) 2024.08.19