Announcement

Collapse
No announcement yet.

Tabellen Kopieren

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

  • Tabellen Kopieren

    Hallo zusammen,
    ich muss Tabellen aus einer SQL Datenbank in eine andere Kopieren.
    Das funktioniert in einer Proc. auch mit einem einfachen Insert ganz gut.
    Allerdings habe ich ein Problem mit Tabellen, die eine timestamp Spalte enthalten. Hier bekomme ich den Fehler, dass kein explizieter Wert eingefügt werden kann.
    Alle Felder einzeln angeben funktioniert. Leider habe ich mehrer Tabellen mit gut 200 Feldern und dort funktioniert es dann nicht mehr, weil das select Statement zu groß wird.
    Hat jemand eine Idee, wie man die timestamp Spalte vielleicht doch automatisch füllen kann.
    Danke für Eure Hilfe.

  • #2
    Originally posted by optimist View Post
    Leider habe ich mehrer Tabellen mit gut 200 Feldern und dort funktioniert es dann nicht mehr, weil das select Statement zu groß wird.
    Welcher Fehler kommt und womit greifst du auf die Datenbank zu (Komponenten/IDE)?

    Comment


    • #3
      Folgender Fehler kommt:
      "Die Auswahlliste für die INSERT-Anweisung enthält weniger Elemente als die Einfügeliste.
      Die Anzahl von SELECT-Werten und die Anzahl von INSERT-Spalten müssen übereinstimmen."
      Bei der Prozedur im Register Meldung kann man dann sehen, dass er irgendwo aufhört.
      Mit weniger Feldern funktioniert es bei der gleichen Tabelle aber.
      Es handelt sich um SQL 2005 Datenbanken und ich greife per SQL in einer Procedur darauf zu.

      Comment


      • #4
        Procedur = Stored Procedure?

        Comment


        • #5
          ja, genau eine Stored Procedure.

          Comment


          • #6
            Hallo,

            ...weil das select Statement zu groß wird.
            wie macht sich dieses Problem bemerkbar?

            Comment


            • #7
              Kannst du mal zählen nach wie viel Zeichen (auch leerzeichen) das Statement abgeschnitten wird. Ich habe mal was gelesen das SQL-Statements beim MS SQL-Server ca. 1 MB umfassen können aber evtl. hat man bei den SP's noch 'ne Grenze übersehen.

              Comment


              • #8
                Hallo,

                beim MS SQL Server 2005 darf der Text einer Stored Procedure bis zu 128 MByte groß werden. Wenn die auszuführende SQL-Anweisung in eine VARCHAR(MAX)-Variable abgelegt und dann über sp_executesql ausgeführt wird, sollte sich die 128 MByte-Grenze voll ausreizen lassen ;-)

                P.S: Greift diese Stored Procedure eventuell auf einen externen SQL-Server zu? Wenn ja, kommt dann noch die Batch-Größenbeschränkung von 65,536 * Network Packet Size dazu.

                Comment

                Working...
                X