JDBC Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 2.11

"ALTER TABLE" Statements

This section describes how to alter a table by adding a new column.

When you are adding new features to an existing database application, very often you need to add new columns to some existing tables. This can be done by using the "ALTER TABLE" statement. Here is a sample Java program that adds a new column called "Discount" to the table "Price":

/**
 * AlterTable.java
 * Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
 */
import java.sql.*;
public class AlterTable {
  public static void main(String [] args) {
    Connection con = null;
    try {
      Class.forName(
        "com.microsoft.sqlserver.jdbc.SQLServerDriver");
      con = DriverManager.getConnection(
          "jdbc:sqlserver://localhost:1269;"
        + "user=sa;password=HerongYang;"
        + "database=AdventureWorksLT");

// Adding a new column to an existing table
      Statement sta = con.createStatement(); 
      int count = sta.executeUpdate(
        "ALTER TABLE Herong.Price ADD Discount REAL");
      System.out.println("A new column added.");
      sta.close();

      DatabaseMetaData meta = con.getMetaData();
      ResultSet res = meta.getColumns(null, null, "Price", null);
      System.out.println("List of columns: "); 
      while (res.next()) {
         System.out.println(
           "  "+res.getString("TABLE_SCHEM")
           + ", "+res.getString("TABLE_NAME")
           + ", "+res.getString("COLUMN_NAME")
           + ", "+res.getString("TYPE_NAME")
           + ", "+res.getString("NULLABLE")); 
      }
      res.close();

      con.close();        
    } catch (java.lang.ClassNotFoundException e) {
      System.err.println("ClassNotFoundException: "
        +e.getMessage());
    } catch (SQLException e) {
      System.err.println("SQLException: "
        +e.getMessage());
    }
  }
}

When you run this program, you should get this output:

A new column added.
List of columns:
  Herong, Price, ProductID, int, 10, 1
  Herong, Price, Price, real, 24, 1
  Herong, Price, Currency, char, 3, 1
  Herong, Price, Discount, real, 24, 1

Sections in This Chapter

Executing "Update" Statements - executeUpdate()

"CREATE SCHEMA" Statements

"CREATE TABLE" Statements

"ALTER TABLE" Statements

"DROP TABLE" Statements

Dr. Herong Yang, updated in 2007
"ALTER TABLE" Statements