Kategorie: Datenbankzugriffe
Frage: Wie kann ich eine Spalte innerhalb einer Datenbanktabelle umbenennen?
Ab und an gibt es Problemstellungen, die ein dynamisches Umbenennen von Tabellenspalten
erfordern. Wenn Sie eine Datenbank online erstellen und ändern, ist dies sicherlich sehr hilfreich,
da Sie die Datenbank nicht jedesmal erst herunterladen, ändern und wieder hochladen müssen.

Access Datenbanken bieten über SQL keine Möglichkeit, eine solche Aktion durchzuführen.

Auch hier ist ADOX das Schlüsselwort. ADOX stellt Ihnen alle Objekte einer (kompatiblen)
Datenbank als Collections und Objekte bereit. Mit Hilfe dieser Collections und Objekte können
Sie fast alle Eigenschaften der Datenbank auslesen und ändern.

An dieser Stelle folgt zuerst einmal der Code, mit dem Sie eine Spalte umbenennen können.
Hierfür erstellen Sie wie gewohnt eine normale Connection über das ADODB.Connection-Objekt
und öffnen die Datenbank. Beachten Sie bitte auch hier, dass Sie hier keine System-DSN verwenden
können, da dann der Microsoft Access ODBC Treiber verwendet werden würde. Dieser kann
allerdings nicht mit ADOX verwendet werden. Daher verwenden wir hier: Microsoft.Jet.OLEDB.4.0.


[renamecolumn.asp]
<%
'  --- Zusammenstellen der Verbindungsinformationen
Dim strProvider
    strProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"

' --- Die Datenbank liegt im Verzeichnis database unterhalb des aktuellen Ordners
Dim strDatabase
    strDatabase = "DATA SOURCE=" & Server.MapPath("./database/dbTest.mdb") & ";"

Dim strComplete
    strComplete = strProvider & strDatabase

' --- Erstellen und öffnen der Datenbankverbindung
Dim objConn
Set objConn = Server.CreateObject( "ADODB.Connection" )
    objConn.Open strComplete

' --- Erstellen des Katalog-Objekts und zuweisen der Datenbankverbindung
Dim objCatalog
Set objCatalog = Server.CreateObject( "ADOX.Catalog" )
    objCatalog.ActiveConnection = objConn

    ' --- Spalte "t_name" wird in "t_name_neu" umbenannt
    objCatalog.Tables("tblTest").Columns("t_name").Name = "t_name_neu"
    objCatalog.Tables.Refresh
    
    Response.Write "Spalte wurde umbenannt"

    objConn.Close

' --- Schließen und terminieren der Datenbankobjekte
Set objCatalog = Nothing
Set objConn = Nothing
%>


Auch hier haben wir Ihnen die verwendeten Dateien als Zipfile zum Download bereitgestellt.

artikel_127.zip [11 KB]


Copyright 2000 - 2024 by Stefan Falz Webconsulting