Zum Inhalt springen

Excel in SQL Server umwandeln

Leg deine Excel-Datei ab und erhalte ein SQL Server-Skript mit CREATE TABLE- und INSERT-Anweisungen. Jede Spalte bekommt einen Typ, und jede Korrektur wird mit Zeile und Spalte aufgeführt.

Deine Datei
xlsxclientes_2024.xlsxBeispieldatei, 7 kB
Deine Datenbank

4 Zeilen konvertiert, 10 Korrekturen, keine abgelehnt

Anzeigen
Die ersten Zeilen von clientes_2024.xlsx, jede Korrektur markiert
Zeile
500127Peña Muñoz0123403/02/2024sí1.234,50
600128José Ángel0987015/02/2024noN/A
700129Zoë Ortíz4410029/02/2024sí-12,00
800130Ñuño Castañeda0670011/03/2024no980,75
-- Written by IntoSQL for SQL Server.

SET NOCOUNT ON;
BEGIN TRANSACTION;

CREATE TABLE clientes_2024 (
    no_cliente nvarchar(8) NOT NULL, -- Nº Cliente
    nombre nvarchar(16) NOT NULL,
    c_p nvarchar(8) NOT NULL, -- C.P.
    alta date NOT NULL,
    activo bit NOT NULL,
    saldo decimal(6,2)
);

INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
(N'00127', N'Peña Muñoz', N'01234', '2024-02-03', 1, 1234.50),
(N'00128', N'José Ángel', N'09870', '2024-02-15', 0, NULL),
(N'00129', N'Zoë Ortíz', N'44100', '2024-02-29', 1, -12.00),
(N'00130', N'Ñuño Castañeda', N'06700', '2024-03-11', 0, 980.75);

COMMIT TRANSACTION;

Korrekturen

  1. Die Kopfzeile ist in Zeile 4; die Zeilen darüber wurden ausgelassen.
  2. Zeile 9 ("TOTAL") ist eine Summe und wurde deshalb ausgelassen.
  3. Spalte "Nº Cliente" heißt jetzt no_cliente, damit SQL Server sie ohne Anführungszeichen liest.
  4. Spalte "C.P." heißt jetzt c_p, damit SQL Server sie ohne Anführungszeichen liest.
  5. Führende Nullen in "Nº Cliente" behalten: 00127 bleibt 00127, gespeichert als Text.
  6. Führende Nullen in "C.P." behalten: 01234 bleibt 01234, gespeichert als Text.
  7. 15/02/2024 belegt, dass die Datumsangaben in "Alta" mit dem Tag beginnen, also wird 03/02/2024 als 2024‑02‑03 gelesen.
  8. "Activo" enthält Ja- und Nein-Wörter (sí, no), gespeichert als Boolean.
  9. Zahlen in "Saldo" nutzen ein Dezimalkomma: 1.234,50 wird als 1234.50 gelesen.
  10. N/A in "Saldo" als leer gelesen (1 von 4 Werten).

Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.

Weitere Beispiele:

Von Excel zu SQL Server, Spalte für Spalte

Das Beispiel oben, clientes_2024.xlsx, so wie IntoSQL es für SQL Server schreibt: was jede Spalte in der Datei enthält, welchen Typ sie bekommt und wie ihr erster Wert im Skript landet.

In der DateiErster WertSpalteTyp in SQL ServerIm Skript
Nº Cliente00127no_clientenvarchar(8)N'00127'
NombrePeña Muñoznombrenvarchar(16)N'Peña Muñoz'
C.P.01234c_pnvarchar(8)N'01234'
Alta03/02/2024altadate'2024-02-03'
Activosíactivobit1
Saldo1.234,50saldodecimal(6,2)1234.50

Das Skript in SQL Server laden

Der Download ist eine einfache .sql-Datei. Führe sie mit den Werkzeugen von SQL Server aus.

Aus einem Terminal

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

-f 65001 liest die Datei als UTF-8, damit Akzente und ñ so ankommen, wie sie geschrieben sind.

Aus einem Datenbank-Tool

Öffne die Datei in SQL Server Management Studio oder Azure Data Studio und wähle Execute.

Was du über Excel-Dateien und SQL Server wissen solltest

Was IntoSQL in Excel-Dateien liest

  • Die Kopfzeile wird auch gefunden, wenn Titel oder Notizen darüber stehen, und eine Summenzeile am Ende wird weggelassen.
  • Als Excel-Seriennummern gespeicherte Datumswerte werden zu echten Datumswerten, im 1900- wie im 1904-Datumssystem.
  • Codes mit führenden Nullen wie 00127 bleiben Text. Hat eine Arbeitsmappe mehrere Blätter, wählst du das Blatt aus.

Was du über SQL Server wissen solltest

  • Text ist nvarchar mit N'...'-Werten, damit Akzente erhalten bleiben; Text über 4000 Zeichen wird zu nvarchar(max).
  • Ja-und-nein-Werte werden zu bit, und Datumswerte mit Zeitversatz werden zu datetimeoffset.
  • Lange Werte werden in Teilen geschrieben, damit sqlcmd und SQL Server Management Studio das Skript akzeptieren.

Wie jede Art von Wert in SQL Server gespeichert wird

WertSQL Server
Ja und neinbit
Ganze Zahlenint
Große ganze Zahlenbigint
Dezimalzahlendecimal(p,s)
Gleitkommazahlenfloat
Datumswertedate
Uhrzeitentime
Datum mit Uhrzeitdatetime2
Datum mit Uhrzeit und Zeitversatzdatetimeoffset
Textnvarchar(n)nvarchar(max)

Fragen zu Excel zu SQL Server

Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite

Wie konvertiere ich Excel zu SQL Server?

Leg deine Datei auf den Konverter oben auf dieser Seite. Er findet die Kopfzeile, liest jeden Wert und schreibt das SQL Server-Skript, mit jeder Korrektur aufgelistet. Lade das Skript herunter und führe es mit sqlcmd aus.

Welches Blatt der Arbeitsmappe wird konvertiert?

Das erste sichtbare Blatt. Hat eine Arbeitsmappe mehrere, erscheint die Option Blatt, mit der du ein anderes wählen kannst.

Welche SQL Server-Typen werden verwendet?

Ja/Nein-Werte werden bit, ganze Zahlen int, Dezimalzahlen decimal(p,s), Datumsangaben date, Datumsangaben mit Uhrzeit datetime2 und Text nvarchar(n). Die Größen richten sich nach dem längsten Wert jeder Spalte.

Bleiben führende Nullen in SQL Server erhalten?

Ja. Ein Code wie 00127 bleibt Text, also speichert SQL Server ihn als nvarchar(8), und das Skript schreibt ihn als N'00127'.

Kann es die Daten ohne Skript in SQL Server laden?

Nein. Lade das Skript herunter und führe es mit sqlcmd aus. Laden ohne Skript funktioniert für PostgreSQL, MySQL, MariaDB und SQLite, aus der Desktop-App oder der Kommandozeile.

Wie groß darf die Excel-Datei sein?

Im Browser wird eine Arbeitsmappe vollständig gelesen, die Grenze ist also der Speicher, den der Browser dieser Seite gibt. Die Desktop-App und die Kommandozeile nehmen Arbeitsmappen jeder Größe; auf einem Apple-M4-Laptop konvertiert die Kommandozeile eine 117-MB-Arbeitsmappe mit einer Million Zeilen in etwa einer Sekunde.