INSERT INTO...SELECT und @@IDENTITY

andrerink

Neuer Benutzer
Beiträge
4
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
 
Werbung:
Zurück
Oben