Announcement

Collapse
No announcement yet.

Excel Import in einer MS SQL Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Excel Import in einer MS SQL Datenbank

    Hallo
    Ich möchte aus einer Excel Liste Daten in eine SQl Datenbank einlesen
    Die Daten sollen in 2 Tabelle gelesen werden, wobei in Tabelle 2 die ID aus Tabelle 1 eingetragen werden muss

    Tabelle 1
    ID
    Name
    Ort

    Tabelle 2
    ID
    ID aus Tabelle 2
    Name
    Ort


    Ich weiß leider nur nicht wie hier ansetzen soll.
    Über mein Programm (delphi.net) und ADO.net oder SQL

  • #2
    Hallo!

    Ist es Importproblem:
    Import von Excel geht mit den Mitteln vom SQL Server DTS fix und gut. Unter Delphi kann man die JET Engine hernehmen (Such mal im Delphi Forum) oder Komponenten zukaufen (z.B. http://www.scalabium.com/sme/)

    oder ein Datenaufbereitungsproblem:
    select identity ( int, 1, 1) as NewTabelle2ID, * into Tabelle2 from Tabelle1
    Erzeugt Dir Tabelle2 mit einer "frischen" Numerierung in NewTabelle2ID.

    oder mehr Infos...

    BYE BERND

    Comment


    • #3
      Hallo,

      bei komplexten Aufgaben (Import und Umstrukturierung der Daten) können die Excel-Daten auch zuerst 1:1 in eine Hilfstabelle des SQL Servers importiert werden. Erst dann teilt man über SQL die Daten in die verschiedenen Tabellen auf.

      Comment


      • #4
        Hallo
        Ich habe eine Excel Tabelle bekommen und die Daten aus dieser Tabelle

        Name, Strasse, Ort, Preis, Lieferzeit

        muss ich in 2 SQL Tabellen aufteilen

        Tabelle 1
        ID, Name, Strasse, Ort

        Tabelle 2
        ID, IDausTabelle1, Preis, Lieferzeit

        Ich muss die Daten nur einmal eintragen. Ich könnte also die Excel Tabelle auch in ein Textfile exportieren

        Mein Problem ist wie bekommt Tabelle 2 die ID's von Tabelle 1 mit bzw wie trage ich es in Tabelle 2 ein

        Ich muss in der Excel Tabelle den Datensatz irgenwie aufteilen und die ID's vergeben
        leider weiß ich nicht wie
        Zuletzt editiert von Raimund; 20.03.2007, 09:30.

        Comment


        • #5
          Hallo Raimund,

          wenn Du die Tabelle, wie Herr Kosch sagt, komplett in den Server schiebst, dann führe folgendes Script aus... Das sollte dein Problem beheben... eventuell musst Du noch die Datentypen oder Namen anpassen:

          declare @cur cursor
          Declare @AdresseID int
          Declare @Name nvarchar(128),
          @Strasse nvarchar(128),
          @Ort nvarchar(128),
          @Preis decimal (10,2),
          @Lieferzeit int

          create table Adresse ([ID] int identity(1,1) primary key,
          [Name] nvarchar(128),
          Strasse nvarchar(128),
          Ort nvarchar(128))

          create table Preis ([ID] int identity(1,1) primary key,
          AdresseID int,
          Preis decimal(10,2),
          Lieferzeit int)


          set @cur = cursor FAST_FORWARD for
          Select
          [Name], Strasse, Ort, Preis, Lieferzeit
          From
          Exceltabelle

          open @cur

          while(1=1)
          begin
          fetch next from @cur into @Name, @Strasse, @Ort, @Preis, @Lieferzeit

          if @@fetch_status <> 0 break

          insert into Adresse ([Name], Strasse, Ort)
          Values(@Name, @Strasse, @Ort)

          Set @AdresseID = ident_current('Adresse')

          insert into Preis(AdresseID, Preis, Lieferzeit)
          Values(@AdresseID, @Preis, @Lieferzeit)
          end

          close @cur
          deallocate @cur


          Gruß
          Thomas

          Comment

          Working...
          X