Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

INSERT INTO...SELECT und @@IDENTITY

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von andrerink, 15 Juli 2013.

  1. andrerink

    andrerink Neuer Benutzer

    Hallo zusammen,

    ich habe die Aufgabe eine alte ACCESS DB in eine SQL DB zu überführen. Problem an der alten Access DB ist das eine ref. Integrität fehlt. Jetzt ist es so das ich eine Tabelle aus der Access DB in zwei neue Tabellen der SQL DB migrieren will.

    Problem ist folgendes: Ich schreibe mit INSERT INTO..SELECT aus der Access DB in die SQL DB in die erste Tabelle. Jetzt will ich den @@IDENTITY Wert nehmen um in die zweite Tabelle den Rest zu schreiben und den @@IDENTITY Wert als Verknüfpung zu nehmen. Es ist aber bei der zweiten Tabelle so das der @@IDENTITY Wert immer der letzte Wert des ersten Inserts ist.

    Ich habe das ganze versucht mit Schleifen zu lösen(while), klappt leider nicht. Gibt es für den Fall eine einfache Lösung?

    Siehe Code. ich will also die ID des Inserts aus der oberen Tabelle in die Spalte (da wo jetzt SCOPE_IDENTITY() steht eintragen).

    Code:
    INSERT INTO db_hsdb.equipment.deliverynote
    SELECT   
          a.LieferDatum
          ,a.LS_Nr
          ,a.BestNr_SAP
          ,NULL
          ,NULL
      FROM (db_access.dbo.Bestand a JOIN db_hsdb.equipment.articles b ON a.Artikelname = b.articlename)
      JOIN db_hsdb.customer.customers c ON c.firmName = a.Firma
      JOIN db_hsdb.equipment.categories d ON d.categories = a.Kategorie
      WHERE MAC is not NULL
     
     
     
    INSERT INTO db_hsdb.equipment.equipment
    SELECT   
          b.articleID
          ,SCOPE_IDENTITY() -- LS_NR, ID aus dem Insert db_hsdb.equipment.deliverynote
          ,@i
          ,c.customerNumber
          ,a.InstDatum
          ,a.ZArtNr
          ,d.categoriesID
          ,a.Bemerkung
          ,a.Bemerkung2
          ,0
          ,0
      FROM (db_access.dbo.Bestand a JOIN db_hsdb.equipment.articles b ON a.Artikelname = b.articlename)
      JOIN db_hsdb.customer.customers c ON c.firmName = a.Firma
      JOIN db_hsdb.equipment.categories d ON d.categories = a.Kategorie
      WHERE MAC is not NULL
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden