How do you change the datatype of a column in SQL Server?

I am trying to change a column from a varchar(50) to a nvarchar(200). What is the SQL command to alter this table?

10 Answers

ALTER TABLE TableName ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL] 

EDIT As noted NULL/NOT NULL should have been specified, see Rob's answer as well.

6

Don't forget nullability.

ALTER TABLE <schemaName>.<tableName> ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL] 
3

Use the Alter table statement.

Alter table TableName Alter Column ColumnName nvarchar(100) 

The syntax to modify a column in an existing table in SQL Server (Transact-SQL) is:

ALTER TABLE table_name ALTER COLUMN column_name column_type; 

For example:

ALTER TABLE employees ALTER COLUMN last_name VARCHAR(75) NOT NULL; 

This SQL Server ALTER TABLE example will modify the column called last_name to be a data type of VARCHAR(75) and force the column to not allow null values.

see here

1

For changing data type

alter table table_name alter column column_name datatype [NULL|NOT NULL] 

For changing Primary key

ALTER TABLE table_name ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name) 

As long as you're increasing the size of your varchar you're OK. As per the Alter Table reference:

Reducing the precision or scale of a column may cause data truncation.

ALTER TABLE [dbo].[TableName] ALTER COLUMN ColumnName VARCHAR(Max) NULL 
1

in 11g:

ALTER TABLE TableName Modify ColumnName DataType; 

EG: ALTER TABLE employees Modify BIRTH_DATE VARCHAR(30);

ALTER TABLE [Performance].[dbo].[CRA_283_Violation] ALTER COLUMN [Throughput_HS_DC_NodeB_3G_Alarm] bit 

Try this:

ALTER TABLE "table_name" MODIFY "column_name" "New Data Type"; 
3

You Might Also Like