JSON omzetten naar SQL Server
Zet je JSON-bestand neer en krijg een SQL Server-script met CREATE TABLE- en INSERT-statements. Elke kolom krijgt een type, en elke correctie wordt vermeld met rij en kolom.
4 rijen geconverteerd, 2 correcties, geen afgewezen
| Rij | ||||||
|---|---|---|---|---|---|---|
| 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;
Correcties
- Voorloopnullen behouden in "pedido": 000481 blijft 000481, opgeslagen als tekst.
- "pagado" bevat ja- en nee-woorden (sí), opgeslagen als boolean.
Je bestand wordt op deze computer omgezet en nooit geüpload.
Andere voorbeelden:
Van JSON naar SQL Server, kolom voor kolom
Het voorbeeld hierboven, pedidos_2024.json, zoals IntoSQL het voor SQL Server schrijft: wat elke kolom in het bestand bevat, welk type ze krijgt en hoe haar eerste waarde in het script terechtkomt.
| In het bestand | Eerste waarde | Kolom | Type in SQL Server | In het script |
|---|---|---|---|---|
| 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 |
Het script in SQL Server laden
De download is een standaard .sql-bestand. Voer het uit met de eigen tools van SQL Server.
Vanuit een terminal
sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql-f 65001 leest het bestand als UTF-8, zodat accenten en ñ aankomen zoals ze geschreven zijn.
Vanuit een databasetool
Open het bestand in SQL Server Management Studio of Azure Data Studio en kies Execute.
Wat je moet weten over JSON-bestanden en SQL Server
Wat IntoSQL leest in JSON-bestanden
- Het bestand kan een array van objecten zijn, een object dat die array onder een sleutel zoals data bevat, of één object per regel (NDJSON).
- Elke sleutel wordt een kolom. Objecten en arrays binnen een waarde blijven JSON-tekst.
- Getallen behouden hun exacte cijfers, en ISO 8601-datums worden datums of tijdstempels.
Wat je moet weten over SQL Server
- Tekst is nvarchar met N'...'-waarden, zodat accenten behouden blijven; tekst van meer dan 4000 tekens wordt nvarchar(max).
- Ja- en nee-waarden worden bit, en datums met tijdverschil worden datetimeoffset.
- Lange waarden worden in delen geschreven, zodat sqlcmd en SQL Server Management Studio het script accepteren.
Hoe elk soort waarde in SQL Server wordt opgeslagen
| Waarde | SQL Server |
|---|---|
| Ja en nee | bit |
| Gehele getallen | int |
| Grote gehele getallen | bigint |
| Decimale getallen | decimal(p,s) |
| Drijvendekommagetallen | float |
| Datums | date |
| Tijdstippen | time |
| Datums met tijd | datetime2 |
| Datums met tijd en tijdverschil | datetimeoffset |
| Tekst | nvarchar(n)nvarchar(max) |
Vragen over JSON naar SQL Server
Staat je vraag er niet bij? Schrijf ons via de contactpagina en een mens antwoordt. Contactpagina
Hoe zet ik JSON om naar SQL Server?
Zet je bestand neer op de converter bovenaan deze pagina. Die vindt de kopregel, leest elke waarde en schrijft het SQL Server-script, met elke correctie vermeld. Download het script en voer het uit met sqlcmd.
Welke vorm moet het JSON-bestand hebben?
Een array van objecten, een object dat die array onder een sleutel zoals data bevat, of één object per regel (NDJSON). Elke sleutel wordt een kolom.
Welke SQL Server-types gebruikt het?
Ja/nee-waarden worden bit, gehele getallen int, decimalen decimal(p,s), datums date, datums met tijd datetime2 en tekst nvarchar(n). De groottes volgen uit de langste waarde in elke kolom.
Blijven voorloopnullen behouden in SQL Server?
Ja. Een code zoals 000481 blijft tekst, dus SQL Server slaat hem op als nvarchar(8) en het script schrijft hem als N'000481'.
Kan het de data zonder script in SQL Server laden?
Nee. Download het script en voer het uit met sqlcmd. Laden zonder script werkt voor PostgreSQL, MySQL, MariaDB en SQLite, vanuit de desktopapp of de opdrachtregel.
Hoe groot mag het JSON-bestand zijn?
NDJSON, één object per regel, wordt gelezen terwijl het binnenstroomt, dus bestanden van meerdere gigabytes werken in de browser. Een JSON-document wordt in zijn geheel gelezen, dus de grens is het geheugen dat de browser deze pagina geeft. De desktopapp en de opdrachtregel nemen bestanden van elke grootte.