İçeriğe geç

JSON dosyalarını SQL Server için dönüştürün

JSON dosyanızı bırakın, CREATE TABLE ve INSERT ifadeleri içeren bir SQL Server betiği alın. Her sütuna bir tür verilir ve her düzeltme satırı ve sütunuyla listelenir.

Dosyanız
jsonpedidos_2024.jsonÖrnek dosya, 771 bayt
Veritabanınız

4 satır dönüştürüldü, 2 düzeltme, reddedilen yok

Göster
pedidos_2024.json dosyasının ilk satırları, her düzeltme işaretli
Satır
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75sí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;

Düzeltmeler

  1. "pedido" içindeki baştaki sıfırlar korundu: 000481, 000481 olarak kalır ve metin olarak saklanır.
  2. "pagado" evet ve hayır sözcükleri içeriyor (sí); boolean olarak saklandı.

Dosyan bu bilgisayarda dönüştürülür ve asla yüklenmez.

Diğer örnekler:

JSON dosyasından SQL Server için, sütun sütun

Yukarıdaki örnek pedidos_2024.json, IntoSQL'in SQL Server için yazdığı haliyle: her sütunun dosyada ne tuttuğu, aldığı tür ve ilk değerinin betiğe nasıl yazıldığı.

Dosyadaİlk değerSütunSQL Server türüBetikte
pedido000481pedidonvarchar(8)N'000481'
clientePeña Muñozclientenvarchar(16)N'Peña Muñoz'
fecha2024-02-03T10:15:00Zfechadatetimeoffset'2024-02-03T10:15:00+00:00'
total1234.5totaldecimal(6,2)1234.5
pagadotruepagadobit1
notas-notasnvarchar(32)NULL

Betiği SQL Server veritabanına yükleyin

İndirilen dosya düz bir .sql dosyasıdır. SQL Server araçlarıyla çalıştırın.

Terminalden

sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql

-f 65001 dosyayı UTF-8 olarak okur, böylece aksanlı harfler ve ñ yazıldığı gibi ulaşır.

Bir veritabanı aracından

SQL Server Management Studio veya Azure Data Studio'da dosyayı açıp Execute'u seçin.

JSON dosyaları ve SQL Server hakkında bilmeniz gerekenler

IntoSQL'in JSON dosyalarında okudukları

  • Dosya bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON) olabilir.
  • Her anahtar bir sütun olur. Bir değerin içindeki nesneler ve diziler JSON metni olarak korunur.
  • Sayılar basamaklarını aynen korur, ISO 8601 tarihleri ise tarih veya zaman damgası olur.

SQL Server hakkında bilmeniz gerekenler

  • Metin, N'...' değerleriyle nvarchar olur, böylece aksanlar korunur; 4000 karakteri aşan metin nvarchar(max) olur.
  • Evet ve hayır değerleri bit olur, saat farkı olan tarihler ise datetimeoffset olur.
  • Uzun değerler parçalar halinde yazılır, böylece sqlcmd ve SQL Server Management Studio betiği kabul eder.

Her değer türü SQL Server içinde nasıl saklanır

DeğerSQL Server
Evet ve hayırbit
Tam sayılarint
Büyük tam sayılarbigint
Ondalık sayılardecimal(p,s)
Kayan noktalı sayılarfloat
Tarihlerdate
Günün saatleritime
Saatli tarihlerdatetime2
Saatli ve saat farkı olan tarihlerdatetimeoffset
Metinnvarchar(n)nvarchar(max)

JSON dosyasından SQL Server için sorular

Yanıtınızı bulamadınız mı? İletişim sayfasından bize yazın, bir kişi yanıt verir. İletişim sayfası

JSON dosyasını SQL Server için nasıl dönüştürürüm?

Dosyanızı bu sayfanın üstündeki dönüştürücüye bırakın. Başlığı bulur, her değeri okur ve yaptığı her düzeltmeyi listeleyerek SQL Server betiğini yazar. Betiği indirip sqlcmd ile çalıştırın.

JSON dosyası hangi yapıda olmalı?

Bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON). Her anahtar bir sütun olur.

Hangi SQL Server türlerini kullanır?

Evet/hayır değerleri bit, tam sayılar int, ondalıklar decimal(p,s), tarihler date, saatli tarihler datetime2 ve metin nvarchar(n) olur. Boyutlar her sütundaki en uzun değere göre belirlenir.

SQL Server için baştaki sıfırları korur mu?

Evet. 000481 gibi bir kod metin olarak kalır; SQL Server onu nvarchar(8) olarak saklar ve betik onu N'000481' olarak yazar.

Verileri betik olmadan SQL Server veritabanına yükleyebilir mi?

Hayır. Betiği indirip sqlcmd ile çalıştırın. Betiksiz yükleme masaüstü uygulamasından veya komut satırından PostgreSQL, MySQL, MariaDB ve SQLite için çalışır.

JSON dosyası ne kadar büyük olabilir?

Satır başına bir nesne içeren NDJSON akış halinde okunur, bu yüzden tarayıcıda birkaç gigabaytlık dosyalar çalışır. Bir JSON belgesi bütün olarak okunur, bu yüzden sınırı tarayıcının bu sayfaya verdiği bellektir. Masaüstü uygulaması ve komut satırı her boyutta dosyayı alır.