Запись Json в столбец SQL вручную с использованием функций SQL - PullRequest
0 голосов
/ 10 июля 2020

Здравствуйте, мне нужно записать JSON в столбец SQL во время вставки в хранимую процедуру.

Что-то вроде:

INSERT INTO TableA (ColumnA)
SELECT
  '{"PropertyA":' + '"' + valueA + '"' + ',"PropertyB":' + '"' + valueB + '"}
FROM TableB

Вышеупомянутое работает, и это вставляет следующее: {"PropertyA:" "SomeValue", "PropertyB:" "AnotherValue"}

Но я надеюсь преобразовать этот оператор во что-то более разборчивое, используя SQL Функции, если они существуют.

1 Ответ

1 голос
/ 10 июля 2020

Похоже, вы ищете FROM OPENJSON(<jsonstring>)

См. Этот пример из документации


DECLARE @json NVARCHAR(MAX);
SET @json = N'[
  {"id": 2, "info": {"name": "John", "surname": "Smith"}, "age": 25},
  {"id": 5, "info": {"name": "Jane", "surname": "Smith"}, "dob": "2005-11-04T12:00:00"}
]';

SELECT *
FROM OPENJSON(@json)
  WITH (
    id INT 'strict $.id',
    firstName NVARCHAR(50) '$.info.name',
    lastName NVARCHAR(50) '$.info.surname',
    age INT,
    dateOfBirth DATETIME2 '$.dob'
  );

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...