Kategorie: Datenbankzugriffe
Frage: Wie kann ich eine Tabelle in einer Access Datenbank umbenennen?
Ab und an gibt es Problemstellungen, die ein dynamisches Umbenennen von Datenbanktabellen
erfordern. Dies kann beispielsweise bei Statistik- oder Protokolldatenbanken sehr hilfreich sein.
Man erzeugt eine neue. leere Tabelle mit der gleichen Struktur und sichert die aktuelle Tabelle
mit einem anderen Namen. Access bietet aber beim Zugriff über ASP/ADO keine Möglichkeit,
eine solche Aktion durchzuführen.

Aber Microsoft lässt Sie auch hier nicht im Stich und stellt ihnen mit ADOX ein mächtiges Werkzeug
zur Manipulation von Datenbanken zur Verfügung. ADOX bedeutet: ActiveX Data Objects
Extensions for Data Definition Language and Security
und ist für die Struktur einer Datenbank
und die Sicherheit (Rechteverwaltung) zuständig. ADOX ist allerdings nicht mit jeder Datenbank,
bzw. jedem Datenbanktreiber kompatibel. Derzeit unterstützt ADOX folgende Datenbanken:

Microsoft Access (bei Zugriff über den Jet OLEDB Provider)
Microsoft SQL Server (bei Zugriff über den OLEDB Provider für SQL Server)
Oracle (bei Zugriff über den Microsoft OLEDB Provider für Oracle)

Es gibt noch einige wenige andere Datenbanksysteme, bzw. Treiber, mit denen ADOX verwendet
werden kann. Diese alle zu berücksichtigen würde aber den Rahmen dieses Artikels sprengen, da
hier auch einige Einschränkungen vorliegen.

An dieser Stelle folgt zuerst einmal der Code, mit dem Sie eine Tabelle umbenennen können.
Hierfür erstellen Sie wie gewohnt eine normale Connection über das ADODB.Connection-Objekt
und öffnen die Datenbank. Beachten Sie bitte, 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.


[renametable.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

    ' --- Tabelle "tblTest" in "tblTest_Neu" umbenennen
    objCatalog.Tables("tblTest").Name = "tblTest_Neu"
    objCatalog.Tables.Refresh
    
    Response.Write "Tabelle 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_126.zip [11 KB]

Copyright 2000 - 2024 by Stefan Falz Webconsulting