Announcement

Collapse
No announcement yet.

INSERT-Anweisung mit mehreren Einträgen

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

  • INSERT-Anweisung mit mehreren Einträgen

    Datenbank: SQL-Server V7.0 mit SP #1

    Ich will in die Datenbank mit einer INSERT-Anweisung mehrere Einträge schreiben.

    Folgende Anweisung (nach dem Buch Die SQL-Referenz) müßte eigentlich klappen

    INSERT INTO Table1(Wert1, Wert2)
    VALUES (10, 12), (13, 15)

    Ich bekomme leiter nur folgende Fehlermeldung:

    Server: Nachr.-Nr. 110, Schweregrad 15, Status 2, Zeile 1<br>
    In der INSERT-Anweisung sind weniger Spalten angegeben als Werte in der VALUES-Klausel. Die Anzahl der Werte in der VALUES-Klausel und die Anzahl der in der INSERT-Anweisung angegebenen Spalten muss übereinstimmen.

    Kann das überhaupt der SQL-Server?<br>
    In der Online-Doku habe ich folgenden Satz gefunden:<br>
    Die INSERT*Anweisung fügt mindestens eine neue Zeile zu einer Tabelle hinzu. In einem vereinfachten Fall weist INSERT die folgende Form auf:
    ...

    Danach müßte es eigentlich auch mit mehr Datensätzen gehen! Das angegebene Beispiel ist aber leiter nur mit einem Eintrag!

  • #2
    Hallo Bernhard,

    ich habe mir die Hilfeseite "Hinzufügen von Zeilen mit INSERT" in der MS SQL Server 7-Dokumentation noch mal gründlich durchgelesen. Dabei interpretiere ich den Satz "<i>Die Anweisung bewirkt, dass die Datenwerte (data_values) als eine oder mehrere Zeile(n) in die angegebene Tabelle oder Sicht eingefügt werden.</i>" dahingehend, dass mehrere Zeilen nur in der <i>INSERT INTO SELECT * FROM</i>-Syntax eingefügt werden, d.h. wenn die einzufügende Datenmenge aus einer Abfrage stammt.

    Allerdings kann man in einer SQL-Anweisung im Stapelbetrieb gleich mehrere Zeilen absetzen, zum Beispiel toleriert TADOQuery den folgenden Inhalt für die Eigenschaft SQL:
    <pre>
    INSERT INTO AutoIncTest (Info, Datum) VALUES ('Zeile 1','01.06.2000')
    INSERT INTO AutoIncTest (Info, Datum) VALUES ('Zeile 2','02.06.2000')
    INSERT INTO AutoIncTest (Info, Datum) VALUES ('Zeile 3','03.06.2000')
    INSERT INTO AutoIncTest (Info, Datum) VALUES ('Zeile 4','04.06.2000')
    INSERT INTO AutoIncTest (Info, Datum) VALUES ('Zeile 5','05.06.2000')
    </pre&gt

    Comment


    • #3
      Hm, nicht schön!

      Aber falls es auch in der obigen Form gehen würde, würde es mir auch reichen!

      Es geht halt darum, sehr viele Datensätze in kurzer Zeit in die Datenbank zu schreiben. Dies geschieht jedoch nicht von Delphi mit der BDE sondern von einem Visuall C++-Programm

      Comment

      Working...
      X