Announcement

Collapse
No announcement yet.

SQL Server 7 / Feldtyp ändern mittels ADO in Delphi oder Acc2000

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

  • SQL Server 7 / Feldtyp ändern mittels ADO in Delphi oder Acc2000

    Hallo alle miteinander,...

    Ich möchte durch eine bestehende Datenbank flitzen, alle Tabellen öffnen und die Feldtypen kontrollieren. Gibt es ein Feld mit dem Typ NVarChar, dann soll daraus ein Feld vom Typ Varchar gemacht werden. Manuell funktioniert das ja schon sehr gut im SQL Server 7 oder in Acc2000 mit Datenbasis SQL S. 7. Man öffnet einfach die Tabelle im Entwurfsmodus und änder in dem entsprechenden Feld den Typen und klickt auf speichern. Und genau so einfach würde ich das gerne z.B. mit ADO machen. D.h. Connection öffen (kein Problem) und auf Tabelle zugreifen (kein Problem). Felder hinzufügen mittels append oder Feldtyp auslesen (kein Problem) aber einen Feldtypen ändern dazu fehlt mir die Methode. Und ganz gewiß möchte ich nicht den Tabellenentwurf löschen und neu erstellen (mit allen Beziehungen usw.) mit neuem Felddatentyp, denn dann ist es sicherer und ggf. auch schneller wenn ich die Änderungen von Hand durchführe (was ich natürlich verhindern will ;-).

    Ich bedanke mich jetzt schon für etwaige Antworten und verbleibe<br>
    mit freundlichen Grüßen<br>
    Patrick Sack<br>

  • #2
    Eine Möglichkeit die mir Einfallen würde, wäre die Änderung mittels der SQL-Anweisung ALTER TABLE ... durchzuführen.
    Damit kann man den Tabellenentwurf ändern, ohne die Tabelle bzw. deren Beziehungen neu aufzubauen zu müssen

    Comment


    • #3
      Danke,

      habe es getestet aber Alter Table geht leider nicht bei Schlüssel oder Indizierten Feldern (und es gibt noch weitere Einschränkungen).

      MfG
      Patrick Sac

      Comment


      • #4
        Hallo Patrick, <p>

        wenn Du ein Feld aendern moechtest wo ein Key (Primary, Secondary, Foreign, ...) )liegt, <br>
        dann musst Du zuerst den Index ueber DELETE INDEX... loeschen <br>
        dann Dein ALTER TABLE... anstossen und zum Schluss wieder ein CREATE INDEX durchfuehren <br>
        damit wieder alles im Lot ist. <br>

        Gruesse <br>
        Dietma

        Comment

        Working...
        X