Announcement

Collapse
No announcement yet.

MS SQL 2000 Daten ändern in Tabelle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MS SQL 2000 Daten ändern in Tabelle

    Hallo Zusammen,
    vielleicht kann mir hier jemand auf die Sprünge helfen.
    Ich muss in einem Feld welches bereits einen Wert enthält einen weiteren mit Komma getrennt einfügen, ohne den bestehenden zu überschreiben.
    Zum Beispiel heisst das Feld bed_rechnung hier ist der Wert zum Beispiel:
    "ZBP" eingetragen. Nachdem einfügen sollte der Wert so aussehen:
    "ZBP,FH"
    Es kann auch sein das bereits 2 Werte eingetragen sind..zum Beispiel:
    ZBP,Voraus daraus soll entstehen "ZBP,Voraus,FH"

    Wie kann ich das am besten lösen...steh gerade aufm Schlauch...
    Bin für jeden Tip dankbar...

  • #2
    Hallo eddi45,

    hängt etwas davon ab, wo der Wert, der anfügt werden soll, herkommt (hast Du nicht erwähnt).

    Das Prinzip sieht aber einfach so aus, der Wert mit + anfügen:

    [highlight=SQL]UPDATE Tabelle
    SET Feld = Feld + ',FH'
    WHERE ... [/highlight]
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo Olaf,
      danke für die Hilfe...hab jetzt folgendes ausprobiert:
      update Firma
      set bed_auftrag = bed_auftrag + ',FH'
      from Firma f inner join adresse a on f.firma = a.adresse

      Nun kommt die Meldung:
      Server: Nachr.-Nr. 8152, Schweregrad 16, Status 9, Zeile 1
      Zeichenfolgen- oder Binärdaten werden abgeschnitten.
      Die Anweisung wurde beendet.

      Wo kann hier der Fehler liegen
      Das Format des Feldes ist char

      Comment


      • #4
        Hallo,

        Zeichenfolgen- oder Binärdaten werden abgeschnitten
        in diesem Fall ist der neue Text länger als das von der Tabelle bei der CREATE TABLE-Anweisung definierte Maximum.

        Das Format des Feldes ist char
        Hier füllt der SQL Server den aktuellen Inhalt immer mit nachfolgenden Leerzeichen bis auf die deklarierte Länge auf, so dass jede zusätzliche Verkettung zum Überlauf führt. Um diesen Effekt zu vermeiden, muss auf RTRIM zurückgegriffen werden:

        [highlight=SQL]
        CREATE TABLE dbo.Test
        (
        test_id INT NOT NULL IDENTITY PRIMARY KEY,
        wert CHAR(9) NOT NULL
        )
        GO
        INSERT INTO dbo.Test (wert) VALUES ('Test');
        GO
        UPDATE dbo.Test SET
        wert = RTRIM(wert) + ',Neu'
        WHERE
        test_id = 1
        GO
        [/highlight]

        Comment

        Working...
        X