none
Abfrage die einen Wert in eine Tabelle einfügt RRS feed

  • Frage

  • Hallo,

    ich habe zwei Tabellen und möchte in die eine in Abhängikeit von Übereinstimmungen der beiden Tabellen einen Wert in der Spalte aktualisieren.

    Aber der Query Analyzer liefert mit die Fehlermeldung:

    Server: Nachr.-Nr. 156, Schweregrad 15, Status 1, Zeile 1
    Incorrect syntax near the keyword 'INNER'.

    Nur ich weiß nicht wo der Fehler liegt?

    Code der Abfrage:

    UPDATE EigeneFirmenSperren  INNER JOIN tAdressen ON (EigeneFirmenSperren.Debitor = tAdressen.FIBUKontoNrDebitor) AND (EigeneFirmenSperren.Kreditor = tAdressen.FIBUKontoNrKreditor) SET tAdressen.KzArbeitsverbot = 1;

    Mittwoch, 27. Juli 2011 13:31

Antworten

  • Hallo,

    der Fehler liegt darin, dass Du versucht Access/Jet SQL beim SQL Server anzubringen,
    damit will der aber nichts zu tun haben (und auch keine anderes RDBMS),
    siehe UPDATE (Transact-SQL)

    UPDATE dbo.tAdressen 
    SET KzArbeitsverbot = 1
    FROM dbo.tAdressen
    INNER JOIN dbo.EigeneFirmenSperren AS e
      ON e.Debitor = tAdressen.FIBUKontoNrDebitor AND e.Kreditor = tAdressen.FIBUKontoNrKreditor
    
    

    Ich habe e als Alias für EigeneFirmenSperren eingeführt, damit die Anweisung kürzer wird.
    Für die aktualisierte Tabelle muss entweder der Tabellenname
    oder in beiden Fällen der gleiche Alias verwendet werden,
    sonst finden UPDATE und FROM nicht zueinander.

    Gruß Elmar

    • Als Antwort markiert azwinzds1 Mittwoch, 27. Juli 2011 14:43
    Mittwoch, 27. Juli 2011 14:07
    Beantworter

Alle Antworten

  • Hallo,

    der Fehler liegt darin, dass Du versucht Access/Jet SQL beim SQL Server anzubringen,
    damit will der aber nichts zu tun haben (und auch keine anderes RDBMS),
    siehe UPDATE (Transact-SQL)

    UPDATE dbo.tAdressen 
    SET KzArbeitsverbot = 1
    FROM dbo.tAdressen
    INNER JOIN dbo.EigeneFirmenSperren AS e
      ON e.Debitor = tAdressen.FIBUKontoNrDebitor AND e.Kreditor = tAdressen.FIBUKontoNrKreditor
    
    

    Ich habe e als Alias für EigeneFirmenSperren eingeführt, damit die Anweisung kürzer wird.
    Für die aktualisierte Tabelle muss entweder der Tabellenname
    oder in beiden Fällen der gleiche Alias verwendet werden,
    sonst finden UPDATE und FROM nicht zueinander.

    Gruß Elmar

    • Als Antwort markiert azwinzds1 Mittwoch, 27. Juli 2011 14:43
    Mittwoch, 27. Juli 2011 14:07
    Beantworter
  • Danke für die Hilfe
    Mittwoch, 27. Juli 2011 14:43