none
Eine Tabelle mit Inhalten einer zweiten Tabelle erweitern SQL Server 2008 Express RRS feed

  • Frage

  • Hallo

    ich steh grad irgendwie auf dem Schlauch:

    folgender Sachverhalt

    Ich habe eine Tabelle mit 50 Datensätzen und 4 Spalten und eine zweite Tabelle mit 3 weiteren Spalten und ebenfalls 50 Datensätzen. Jeder Datensatz gehört 1 zu 1 zusammen. Nun möchte ich die Daten aus der zweiten Tabelle in die erste Tabelle einfügen mittels eines SQL Befehls. 

    Primary Key steht in einer 1 zu 1 Verbindung ist somit gleich in jeder Tabelle.

    Vielen Dank im Voraus 

    PS. Die Spalten hab ich ebenfalls 1 zu 1 von der zweiten Tabelle in die erste Tabelle übertragen. Nur die Daten fehlen halt.
    • Bearbeitet sweetyy456 Freitag, 9. November 2012 13:33
    Freitag, 9. November 2012 13:29

Antworten

  • Hi,

    was ist denn "virtuell"?

    Wenn Du Tabelle 1 um drei Spalten erweitern willst, tu das doch!?

    ALTER TABLE dbo.Tabelle1
    ADD   SpalteX int NULL,
          SpalteY nvarchar(50) NULL
    

    Alternativ geht das auch über den Designer im SQL Server Management Studio.

    Anschließend noch die Daten rüberholen:

    UPDATE Tabelle1
    SET    SpalteX = t2.SpalteX,
           SpalteY = t2.SpalteY
    FROM   Tabelle2 t2
    WHERE  Tabelle1.ID = t2.ID
    


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert sweetyy456 Freitag, 9. November 2012 18:19
    Freitag, 9. November 2012 13:45
    Moderator

Alle Antworten

  • Hi,

    SELECT t1.SpalteA,
           t1.SpalteB,
           t2.SpalteX,
           t2.SpalteY
    FROM   tabelle1 t1
           INNER JOIN tabelle2 t2 ON t1.<Primärschlüsselspalte> = t2.<Primärschlüsselspalte>

    Oder meintest Du, dass Du die 3 Spalten aus Tabelle2 nun direkt in die Tabelle1 integrieren und anschließend die Werte einmalig übernehmen willst?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Freitag, 9. November 2012 13:33
    Moderator
  • da sind die Daten leider nur virtuell drin, aber die sollen fest zusamengehören
    Freitag, 9. November 2012 13:35
  • Hi,

    was ist denn "virtuell"?

    Wenn Du Tabelle 1 um drei Spalten erweitern willst, tu das doch!?

    ALTER TABLE dbo.Tabelle1
    ADD   SpalteX int NULL,
          SpalteY nvarchar(50) NULL
    

    Alternativ geht das auch über den Designer im SQL Server Management Studio.

    Anschließend noch die Daten rüberholen:

    UPDATE Tabelle1
    SET    SpalteX = t2.SpalteX,
           SpalteY = t2.SpalteY
    FROM   Tabelle2 t2
    WHERE  Tabelle1.ID = t2.ID
    


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert sweetyy456 Freitag, 9. November 2012 18:19
    Freitag, 9. November 2012 13:45
    Moderator
  • update tabelle1

    set feld10 = t2.feld10, feld11 = t2.feld11, feld12 = t2.feld12

    from tabelle1 t1

    join tablle2 t1 on t1.feld0 = t2.feld0

    Freitag, 9. November 2012 14:02
  • @Stefan

    hat super funktionert. 

    vielen dank

    Freitag, 9. November 2012 18:18