sql, update problem



  • sql-abfrage:

    bei folgendem code:

    update [ODS].[dbo].[vBOMPriceComp]
          (BomTitelID
          ,PartOfTitelID
          ,TitelID
          ,CompPriceType
          ,CompPriceKey
          ,CompRefNo
          ,CompDescription
          ,CompMesonicArtikelNr
          ,SLID
          ,ppID
          ,notes)
    
    select BomTitelID
          ,c.PartOfTitelID
          ,c.TitelID
          ,c.CompPriceType
          ,c.CompPriceKey
          ,c.CompRefNo
          ,c.CompDescription
          ,c.CompMesonicArtikelNr
          ,c.SLID
          ,c.ppID
    --    ,c.price
          ,c.notes
    
    from vBOMPriceComp c
    where  
    exists
    (
    select * from dbo.fnPriceCompBOM(.....) bp
    where c.BOMTitelID = bp.titelid
    and c.TitelID = bp.titelid
    and c.compPriceType = bp.CompPriceType
    and c.SLID = bp.SLID
    )
    and BOMTitelID = .....
    

    meckert er mit:

    Meldung 102, Ebene 15, Status 1, Zeile 4
    Falsche Syntax in der Nähe von ','.
    

    liegt wohl daran, das ich fehlende sql-kenntnisse hab.

    wie gehe ich mit update richtig um?



  • sry... die fehlermeldung war die falsche...

    Meldung 102, Ebene 15, Status 31, Zeile 20
    Falsche Syntax in der Nähe von '('.
    


  • Nun ja, das ist eher die Insert-Syntax. Updates sehen eher so aus:

    UPDATE Tabelle
    SET Feld = Wert, Feld2 = Wert2...
    WHERE (...Bedingungen...)



  • hm ... okay, aber jetzt hab ich nen verständnis problem, es geht um folgendes: ersetzt update nicht? macht update auch nur ein insert? weil folgende fehlermeldung trat jetzt bei:

    [dbo].[vBOMPriceComp]
    set	   BomTitelID = @BomTitelID  
          ,PartOfTitelID = @PartOfTitelID
          ,TitelID = @TitelID
          ,CompPriceType = @CompPriceType
          ,CompPriceKey = @CompPriceKey
          ,CompRefNo = @CompRefNo
          ,CompDescription = @CompDescription
          ,CompMesonicArtikelNr = @CompMesonicArtikelNr
          ,SLID = @SLID
          ,ppID = @ppID
          ,notes = @notes
    

    auf:

    Meldung 2627, Ebene 14, Status 1, Zeile 39
    Verletzung der PRIMARY KEY-Einschränkung 'PK_BOMPriceComp'. Ein doppelter Schlüssel kann in das 'dbo.BOMPriceComp'-Objekt nicht eingefügt werden.
    Die Anweisung wurde beendet.
    


  • sag ja ^^ ich bin ein nap. hab die where bedingung weggelassen .... grmpf



  • Ein Update verändert vorhandene Datensätze.
    Ein Insert fügt neue Datensätze hinzu.


Anmelden zum Antworten