In SQL Server, the ALTER TABLE
statement is used to modify an existing table's structure.
One of the common operations performed with the ALTER TABLE command is adding a new column to an existing table.
This allows you to extend the schema of your database and store additional data.
Syntax
The syntax for adding a column to an existing table in SQL Server is as follows:
ALTER TABLE table_name
ADD column_name data_type [column_constraint];
Let's break down the components of this syntax:
ALTER TABLE:
Specifies that you want to modify an existing table.
table_name:
The name of the table to which you want to add the column.
ADD:
Indicates that you want to add a new column.
column_name:
The name of the new column you want to add.
data_type:
The data type of the new column, such as VARCHAR
, INT
, DATE
, etc.
column_constraint (optional):
Any constraints or attributes you want to apply to the new column, such as NOT NULL or DEFAULT values.
Examples
Here are a few examples to illustrate how to use the ALTER TABLE ADD COLUMN
command:
Example 1: Adding a basic column.
ALTER TABLE employees
ADD email VARCHAR(100);
This adds a new column named "email" of type VARCHAR with a maximum length of 100 characters to the "employees" table.
Example 2: Adding a column with a NOT NULL constraint.
ALTER TABLE customers
ADD phone_number VARCHAR(15) NOT NULL;
This adds a new column named "phone_number" of type VARCHAR
with a maximum length of 15 characters to the "customers" table.
The column is set as NOT NULL
, meaning it must have a value for each row.
Example 3: Adding a column with a default value.
ALTER TABLE orders
ADD order_status VARCHAR(20) DEFAULT 'pending';
This adds a new column named "order_status" of type VARCHAR with a maximum length of 20 characters to the "orders" table. The column is assigned a default value of 'pending'. If a value is not explicitly provided for this column during an INSERT operation, it will default to 'pending'.
Remember, when adding a column to an existing table, you should consider the impact on the existing data and any related queries or applications.