Convertire CSV in SQL Server
Trascina il tuo file CSV per ottenere uno script SQL Server con istruzioni CREATE TABLE e INSERT. Ogni colonna riceve un tipo e ogni correzione è elencata con la sua riga e colonna.
5 righe convertite, 8 correzioni, nessuna rifiutata
| Riga | ||||||
|---|---|---|---|---|---|---|
| 5 | 00412 | Peña Muñoz | Mérida | 15/02/2024 | 1.234,50 | sí |
| 6 | 00413 | José Ángel Ruiz | León | 03/02/2024 | 99,90 | no |
| 7 | 00414 | Zoë Ortíz | Querétaro | 29/02/2024 | N/A | sí |
| 8 | 00415 | Ñuño Castañeda | Oaxaca | 28/02/2024 | 7,25 | no |
| 9 | 00416 | Iñaki Olaizola | Mazatlán | 11/03/2024 | 980,75 | sí |
-- Written by IntoSQL for SQL Server.
SET NOCOUNT ON;
BEGIN TRANSACTION;
CREATE TABLE ventas_2024 (
folio nvarchar(8) NOT NULL,
cliente nvarchar(16) NOT NULL,
ciudad nvarchar(16) NOT NULL,
fecha date NOT NULL,
importe decimal(6,2),
pagado bit NOT NULL
);
INSERT INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES
(N'00412', N'Peña Muñoz', N'Mérida', '2024-02-15', 1234.50, 1),
(N'00413', N'José Ángel Ruiz', N'León', '2024-02-03', 99.90, 0),
(N'00414', N'Zoë Ortíz', N'Querétaro', '2024-02-29', NULL, 1),
(N'00415', N'Ñuño Castañeda', N'Oaxaca', '2024-02-28', 7.25, 0),
(N'00416', N'Iñaki Olaizola', N'Mazatlán', '2024-03-11', 980.75, 1);
COMMIT TRANSACTION;
Correzioni
- Il file era codificato in windows‑1252; è stato convertito in UTF-8.
- L'intestazione è alla riga 4; le righe sopra sono state escluse.
- La riga 10 ("TOTAL") è un totale, quindi è stata esclusa.
- Zeri iniziali mantenuti in "Folio": 00412 resta 00412, salvato come testo.
- 15/02/2024 dimostra che le date in "Fecha" hanno prima il giorno, quindi 03/02/2024 si legge come 2024‑02‑03.
- I numeri in "Importe" usano la virgola decimale: 1.234,50 si legge come 1234.50.
- N/A in "Importe" letti come vuoti (1 su 5 valori).
- "Pagado" contiene parole sì e no (sí, no), salvate come booleano.
Il tuo file viene convertito su questo computer e non viene mai caricato.
Altri esempi:
Da CSV a SQL Server, colonna per colonna
L'esempio qui sopra, ventas_2024.csv, come IntoSQL lo scrive per SQL Server: cosa contiene ogni colonna nel file, il tipo che riceve e come il suo primo valore finisce nello script.
| Nel file | Primo valore | Colonna | Tipo SQL Server | Nello script |
|---|---|---|---|---|
| Folio | 00412 | folio | nvarchar(8) | N'00412' |
| Cliente | Peña Muñoz | cliente | nvarchar(16) | N'Peña Muñoz' |
| Ciudad | Mérida | ciudad | nvarchar(16) | N'Mérida' |
| Fecha | 15/02/2024 | fecha | date | '2024-02-15' |
| Importe | 1.234,50 | importe | decimal(6,2) | 1234.50 |
| Pagado | sí | pagado | bit | 1 |
Carica lo script in SQL Server
Il download è un semplice file .sql. Eseguilo con gli strumenti di SQL Server.
Da un terminale
sqlcmd -S localhost -d mydb -f 65001 -i ventas_2024.sql_server.sql-f 65001 legge il file come UTF-8, così accenti e ñ arrivano come sono scritti.
Da uno strumento per database
In SQL Server Management Studio o Azure Data Studio, apri il file e scegli Execute.
Cosa sapere sui file CSV e su SQL Server
Cosa legge IntoSQL nei file CSV
- La codifica viene rilevata, comprese Windows-1252 e UTF-16, così accenti e ñ arrivano intatti.
- Il separatore viene rilevato: virgola, punto e virgola, tabulazione o barra verticale. Con il punto e virgola, le virgole decimali come 1.234,50 vengono lette come numeri.
- I valori tra virgolette possono contenere separatori e a capo.
Cosa sapere su SQL Server
- Il testo è nvarchar con valori N'...', così gli accenti restano intatti; il testo oltre 4000 caratteri diventa nvarchar(max).
- I valori sì e no diventano bit, e le date con fuso diventano datetimeoffset.
- I valori lunghi vengono scritti a pezzi, così sqlcmd e SQL Server Management Studio accettano lo script.
Come viene salvato ogni tipo di valore in SQL Server
| Valore | SQL Server |
|---|---|
| Sì e no | bit |
| Numeri interi | int |
| Numeri interi grandi | bigint |
| Decimali | decimal(p,s) |
| Numeri in virgola mobile | float |
| Date | date |
| Orari | time |
| Date con ora | datetime2 |
| Date con ora e fuso | datetimeoffset |
| Testo | nvarchar(n)nvarchar(max) |
Domande su CSV in SQL Server
Non trovi la risposta? Scrivici dalla pagina dei contatti e ti risponde una persona. Pagina dei contatti
Come converto CSV in SQL Server?
Trascina il file sul convertitore in cima a questa pagina. Trova l'intestazione, legge ogni valore e scrive lo script SQL Server, elencando ogni correzione fatta. Scarica lo script ed eseguilo con sqlcmd.
E se il mio CSV usa punti e virgola o tabulazioni?
Il separatore viene rilevato: virgola, punto e virgola, tabulazione o barra verticale. Puoi anche impostarlo in Altre opzioni. Con il punto e virgola, le virgole decimali come 1.234,50 vengono lette come numeri.
Quali tipi SQL Server usa?
I valori sì e no diventano bit, i numeri interi int, i decimali decimal(p,s), le date date, le date con ora datetime2 e il testo nvarchar(n). Le dimensioni dipendono dal valore più lungo di ogni colonna.
Mantiene gli zeri iniziali in SQL Server?
Sì. Un codice come 00412 resta testo, quindi SQL Server lo salva come nvarchar(8) e lo script lo scrive come N'00412'.
Può caricare i dati in SQL Server senza uno script?
No. Scarica lo script ed eseguilo con sqlcmd. Il caricamento senza script funziona per PostgreSQL, MySQL, MariaDB e SQLite, dall'app desktop o dalla riga di comando.
Quanto può essere grande il file CSV?
Il browser legge il CSV man mano che arriva, quindi funzionano file di diversi gigabyte. Su un portatile Apple M4 la riga di comando converte un CSV di 174 MB con un milione di righe in meno di un secondo.