How do you change the datatype of a column in SQL Server?
-
06-07-2019 - |
Question
I am trying to change a column from a varchar(50)
to a nvarchar(200)
. What is the SQL command to alter this table?
Solution
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.
OTHER TIPS
Don't forget nullability.
ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
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
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.
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)
Try this:
ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";