Modify columns

Applies to: SQL Server 2016 (13.x) and later Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

You can modify the data type of a column in SQL Server by using SQL Server Management Studio or Transact-SQL.


Modifying the data type of a column that already contains data can result in the permanent loss of data when the existing data is converted to the new type. In addition, code and applications that depend on the modified column may fail. These include queries, views, stored procedures, user-defined functions, and client applications. Note that these failures will cascade. For example, a stored procedure that calls a user-defined function that depends on the modified column may fail. Carefully consider any changes you want to make to a column before making it.


Requires ALTER permission on the table.

Use SQL Server Management Studio (SSMS)

To modify the data type of a column using SSMS

  1. In Object Explorer, right-click the table with columns for which you want to change the scale and select Design.

  2. Select the column for which you want to modify the data type.

  3. In the Column Properties tab, select the grid cell for the Data Type property and choose a new data type from the drop-down list.

  4. On the File menu, select Save table name.


When you modify the data type of a column, Table Designer applies the default length of the data type you selected, even if you have already specified another. Always set the data type length for to the desired value after specifying the data type.


If you attempt to modify the data type of a column that relates to other tables, Table Designer asks you to confirm that the change should be made to the columns in the other tables as well.

Use Transact-SQL

To modify the data type of a column using Transact-SQL

  1. In Object Explorer, connect to an instance of Database Engine.

  2. On the Standard bar, select New Query.

  3. Copy and paste the following example into the query window and select Execute.

    CREATE TABLE dbo.doc_exy (column_a INT );  
    INSERT INTO dbo.doc_exy (column_a) VALUES (10);  
    ALTER TABLE dbo.doc_exy ALTER COLUMN column_a DECIMAL (5, 2);  

Next steps