修改列

适用于:SQL Server 2016 (13.x) 及更高版本Azure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

你可以通过使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中修改列的数据类型。

警告

如果修改已包含数据的列的数据类型,则在将现有数据转换为新类型时可能会导致永久丢失数据。 此外,依赖于所修改列的代码和应用程序可能会失败。 这些代码和应用程序包括查询、视图、存储过程、用户定义函数和客户端应用程序等。 注意,这些错误会级联发生。 例如,如果一个存储过程调用一个依赖于所修改列的用户定义函数,则该存储过程可能会失败。 请在需要对列进行任何更改之前慎重考虑。

权限

需要对表的 ALTER 权限。

使用 SQL Server Management Studio (SSMS)

使用 SSMS 修改列的数据类型

  1. 在对象资源管理器中,右键单击要更改其小数位数的列所在的表,再选择“设计”

  2. 选择要修改其数据类型的列。

  3. 在“列属性”选项卡中,选择“数据类型”属性的网格单元格,再从下拉列表中选择新的数据类型

  4. 在“文件”菜单上,选择“保存”以保存表名称。

注意

当您修改列的数据类型时,即使已为所选数据类型指定其他长度,表设计器也会使用该数据类型的默认长度。 在指定数据类型之后,始终需要将数据类型长度设置为所需的值。

警告

如果您尝试修改与其他表相关的列的数据类型,表设计器会要求您确认也应该对其他表中的列进行更改。

使用 Transact-SQL

使用 Transact-SQL 修改列的数据类型

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。

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

后续步骤