Ваш хороший способ. Я обычно использую одну строку для каждого столбца. Это может быть очень долго, но я нахожу это более читабельным. Примерно так:
insert into Table1 (
Col1
,Col2
,...
,Coln
)
values (
One /* Col1 */
,Two /* Col2 */
,...
,ValN /* Coln */
);
В некоторых случаях полезно использовать строку JSON. В других случаях это может быть излишним. Вот простой пример:
Допустим, у нас есть таблица с именем «test» с двумя столбцами: «Number» (INT) и «Word» (VARCHAR (40))
Мы можем вставить записи в этой таблице, используя следующую конструкцию:
INSERT INTO test (Number, Word)
SELECT source.Number, source.Word
FROM
(
SELECT Number, Word
FROM
OpenJson('[{
"number": 01, "word": "This"
}, {
"number": 02, "word": "Is"
}, {
"number": 03, "word": "Just"
}, {
"number": 04, "word": "a"
}, {
"number": 05, "word": "Test"
}] '
) WITH (Number INT '$.number', Word VARCHAR(40) '$.word')
) AS source
Как мы видим:
- Данные для вставки хранятся в строке JSON. Затем мы присваиваем имя каждому свойству в строке JSON, используя те же имена столбцов в таблице.
- При фактической вставке имена значений для вставки являются переменными, имена которых совпадают с именами столбцов. , делая его очень читабельным. (source.Number, source.Word).
В некоторых случаях использование строки JSON может помочь не только с отображением данных и их столбцов, но и отладкой данных и поиском неправильные значения.