Kategorie: Datenbankzugriffe
Frage: Wie kann ich eine Tabelle nachträglich mit ASP ändern (Spalten hinzufügen, löschen, ...) ?
Sie können eigentlich jedes SQL-Statement ausführen, dass die von Ihnen verwendete Datenbank
interpretieren kann. So zum Beispiel auch DDL-Statements (Data Definition Language)

Hier sehen Sie ein Beispiel zum Erstellen einer Tabelle in einer Access-Datenbank:

[createtable.asp]
<%
' --- Fehlerbehandlung aktivieren
On Error Resume Next

' --- Datenbankverbindung aufbauen
Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "DSN", "UID", "PWD"
    
    ' --- Dieses SQL-Statement legt eine Tabelle mit dem Namen <tabelle>
    ' --- an. Die Tabelle erhält 2 Spalten, <spalte1> und <spalte2>, jeweils
    ' --- als Textfeld mit max. 50 Zeichen definiert
    SQL = "CREATE TABLE <tabelle> (<spalte1> TEXT(50), <spalte2> TEXT(50))"

    ' --- Ausführen des SQL-Statements
    objConn.Execute SQL

    ' --- Abfrage, ob ein Fehler aufgetreten ist
    If Err <> 0 Then
        Response.Write "Die Tabelle konnte nicht erstellt werden."
        Else
            Response.Write "Die Tabelle wurde erfolgreich erstellt."
    End if

    objConn.Close
Set objConn = Nothing
%>

Hier sehen Sie ein Beispiel zum Ändern einer Tabelle in einer Access-Datenbank. Es wird eine neue Spalte eingefügt.

[addcolumn.asp]
<%
' --- Fehlerbehandlung aktivieren
On Error Resume Next

' --- Datenbankverbindung aufbauen
Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "DSN", "UID", "PWD"
    
    ' --- Dieses SQL-Statement legt eine neue Spalte mit dem Namen <spalte3>
    ' --- vom Typ TEXT (max. 50 Zeichen) in der Tabelle <tabelle> an.
    SQL = "ALTER TABLE <tabelle> ADD COLUMN <spalte3> TEXT(50)"

    ' --- Ausführen des SQL-Statements
    objConn.Execute SQL

    ' --- Abfrage, ob ein Fehler aufgetreten ist
    If Err <> 0 Then
        Response.Write "Die Spalte konnte nicht eingefügt werden."
        Else
            Response.Write "Die Spalte wurde erfolgreich eingefügt."
    End if

    objConn.Close
Set objConn = Nothing
%>

Hier sehen Sie ein Beispiel zum Ändern einer Tabelle in einer Access-Datenbank. Es wird eine Spalte gelöscht.

[dropcolumn.asp]
<%
' --- Fehlerbehandlung aktivieren
On Error Resume Next

' --- Datenbankverbindung aufbauen
Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "DSN", "UID", "PWD"
    
    ' --- Dieses SQL-Statement löscht die Spalte <spalte2> aus der Tabelle <tabelle>.
    SQL = "ALTER TABLE <tabelle> DROP COLUMN <spalte2>"

    ' --- Ausführen des SQL-Statements
    objConn.Execute SQL

    ' --- Abfrage, ob ein Fehler aufgetreten ist
    If Err <> 0 Then
        Response.Write "Die Spalte konnte nicht gelöscht werden."
        Else
            Response.Write "Die Spalte wurde erfolgreich gelöscht."
    End if

    objConn.Close
Set objConn = Nothing
%>
Hier sehen Sie ein Beispiel zum Ändern einer Tabelle in einer Access-Datenbank. Es wird der Datentyp einer Spalte geändert.

[altercolumn.asp]
<%
' --- Fehlerbehandlung aktivieren
On Error Resume Next

' --- Datenbankverbindung aufbauen
Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "DSN", "UID", "PWD"
    
    ' --- Dieses SQL-Statement ändert den Datentyp der Spalte <spalte3>
    ' --- vom Typ TEXT (max. 50 Zeichen) in DATETIME (Datum/Uhrzeit).
    ' --- Man sollte hierbei aber beachten, dass bei Datentypänderungen
    ' --- Werte, die nicht mit dem neuen Typ vetrtäglich sind, gelöscht werden.
    SQL = "ALTER TABLE <tabelle> ALTER COLUMN <spalte3> DATETIME"

    ' --- Ausführen des SQL-Statements
    objConn.Execute SQL

    ' --- Abfrage, ob ein Fehler aufgetreten ist
    If Err <> 0 Then
        Response.Write "Die Spalte konnte nicht geändert werden."
        Else
            Response.Write "Die Spalte wurde erfolgreich geändert."
    End if

    objConn.Close
Set objConn = Nothing
%>
Copyright 2000 - 2024 by Stefan Falz Webconsulting