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