Конвертация JSON в SQL Server
Перетащите файл JSON, чтобы получить скрипт для SQL Server с командами CREATE TABLE и INSERT. Каждый столбец получает тип, а каждое исправление указано со строкой и столбцом.
4 строки конвертированы, 2 исправления, ни одна не отклонена
| Строка | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | Factura con "RFC" |
-- Written by IntoSQL for SQL Server.
SET NOCOUNT ON;
BEGIN TRANSACTION;
CREATE TABLE pedidos_2024 (
pedido nvarchar(8) NOT NULL,
cliente nvarchar(16) NOT NULL,
fecha datetimeoffset NOT NULL,
total decimal(6,2) NOT NULL,
pagado bit NOT NULL,
notas nvarchar(32)
);
INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
(N'000481', N'Peña Muñoz', '2024-02-03T10:15:00+00:00', 1234.5, 1, NULL),
(N'000482', N'José Ángel Ruiz', '2024-02-15T16:40:00+00:00', 99.9, 0, N'Entrega en la tarde'),
(N'000483', N'Zoë Ortíz', '2024-02-29T09:05:00+00:00', 12, 1, NULL),
(N'000484', N'Ñuño Castañeda', '2024-03-11T13:30:00+00:00', 980.75, 1, N'Factura con "RFC"');
COMMIT TRANSACTION;
Исправления
- В "pedido" сохранены ведущие нули: 000481 остается 000481 и хранится как текст.
- "pagado" содержит слова да и нет (sí), они сохранены как логические значения.
Файл конвертируется на этом компьютере и никуда не загружается.
Другие примеры:
Из JSON в SQL Server, столбец за столбцом
Пример выше, pedidos_2024.json, в том виде, в котором IntoSQL записывает его для SQL Server: что хранит каждый столбец в файле, какой тип он получает и как его первое значение попадает в скрипт.
| В файле | Первое значение | Столбец | Тип в SQL Server | В скрипте |
|---|---|---|---|---|
| pedido | 000481 | pedido | nvarchar(8) | N'000481' |
| cliente | Peña Muñoz | cliente | nvarchar(16) | N'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | datetimeoffset | '2024-02-03T10:15:00+00:00' |
| total | 1234.5 | total | decimal(6,2) | 1234.5 |
| pagado | true | pagado | bit | 1 |
| notas | - | notas | nvarchar(32) | NULL |
Загрузите скрипт в SQL Server
Вы скачиваете обычный файл .sql. Запустите его штатными средствами SQL Server.
Из терминала
sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql-f 65001 читает файл как UTF-8, поэтому кириллица и ñ доходят в том виде, в котором записаны.
Из клиента базы данных
В SQL Server Management Studio или Azure Data Studio откройте файл и выберите Execute.
Что нужно знать о файлах JSON и SQL Server
Что IntoSQL читает в файлах JSON
- Файл может быть массивом объектов, объектом, который хранит этот массив под ключом вроде data, или одним объектом на строку (NDJSON).
- Каждый ключ становится столбцом. Объекты и массивы внутри значения сохраняются как текст JSON.
- Числа сохраняют все свои цифры, а даты ISO 8601 становятся датами или метками времени.
Что нужно знать о SQL Server
- Текст хранится как nvarchar со значениями N'...', поэтому диакритика сохраняется; текст длиннее 4000 символов становится nvarchar(max).
- Значения да и нет становятся bit, а даты со смещением становятся datetimeoffset.
- Длинные значения записываются частями, поэтому sqlcmd и SQL Server Management Studio принимают скрипт.
Как каждый вид значений хранится в SQL Server
| Значение | SQL Server |
|---|---|
| Да и нет | bit |
| Целые числа | int |
| Большие целые числа | bigint |
| Десятичные числа | decimal(p,s) |
| Числа с плавающей точкой | float |
| Даты | date |
| Время суток | time |
| Даты со временем | datetime2 |
| Даты со временем и смещением | datetimeoffset |
| Текст | nvarchar(n)nvarchar(max) |
Вопросы о JSON в SQL Server
Нет ответа на ваш вопрос? Напишите нам через страницу контактов, и вам ответит человек. Страница контактов
Как конвертировать JSON в SQL Server?
Перетащите файл в конвертер в верхней части этой страницы. Он находит заголовок, читает каждое значение и записывает скрипт для SQL Server, перечисляя каждое исправление. Скачайте скрипт и запустите его через sqlcmd.
Какой структуры должен быть файл JSON?
Массив объектов, объект с таким массивом под ключом вроде data или по одному объекту в строке (NDJSON). Каждый ключ становится столбцом.
Какие типы SQL Server используются?
Значения да и нет становятся bit, целые числа int, дробные decimal(p,s), даты date, даты со временем datetime2, а текст nvarchar(n). Размеры берутся по самому длинному значению в каждом столбце.
Сохраняются ли ведущие нули в SQL Server?
Да. Код вроде 000481 остается текстом, поэтому SQL Server хранит его как nvarchar(8), а скрипт записывает как N'000481'.
Можно ли загрузить данные в SQL Server без скрипта?
Нет. Скачайте скрипт и запустите его через sqlcmd. Загрузка без скрипта работает для PostgreSQL, MySQL, MariaDB и SQLite из приложения для компьютера или командной строки.
Насколько большим может быть файл JSON?
NDJSON, по одному объекту в строке, читается потоково, поэтому в браузере работают файлы в несколько гигабайт. Документ JSON читается целиком, поэтому его предел - память, которую браузер выделяет этой странице. Приложение для компьютера и командная строка принимают файлы любого размера.