alter table
alter table [database.[owner]].table_name
{ add column_name datatype
[default {constant_expression | user | null}]
{identity | null | not null}
[off row | in row]
[ [constraint constraint_name]
{ { unique | primary key }
[clustered | nonclustered]
[asc | desc]
[with { fillfactor = pct,
max_rows_per_page = num_rows,
reservepagegap = num_pages }]
[on segment_name]
| references [[database.]owner.]ref_table
[(ref_column)]
[match full]
| check (search_condition) ] ... }
[encrypt [with [database .] owner ] .]keyname
[, next_column]...
| add {[constraint constraint_name]
{ unique | primary key}
[clustered | nonclustered]
(column_name [asc | desc]
[, column_name [asc | desc]...])
[with { fillfactor = pct,
max_rows_per_page = num_rows,
reservepagegap = num_pages}]
[on segment_name]
| foreign key (column_name [{, column_name}...])
references [[database.]owner.]ref_table
[(ref_column [{, ref_column}...])]
[match full]
| check (search_condition)}
| drop {column_name [, column_name]...
| constraint constraint_name }
| modify column_name datatype [null | not null]
[encrypt [with [[database.] owner].] keyname]
|decrypt
[, next_column]...
| replace column_name
default { constant_expression | user | null}
| partition number_of_partitions
| unpartition| { enable | disable } trigger
| lock {allpages | datarows | datapages } }
| with exp_row_size=num_bytes
| [ alter_partition_clause ]
[ partition_clause ]