适用于:SQL Server 2016 (13.x) 及以后版本
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric 中的 SQL 数据库
你可以通过使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中修改列的数据类型。
Warning
如果修改已包含数据的列的数据类型,则在将现有数据转换为新类型时可能会导致永久丢失数据。 此外,依赖于所修改列的代码和应用程序可能会失败。 这些代码和应用程序包括查询、视图、存储过程、用户定义函数和客户端应用程序等。 这些故障将引发级联效应。 例如,如果一个存储过程调用一个依赖于所修改列的用户定义函数,则该存储过程可能会失败。 请在对列进行任何更改之前仔细考虑清楚。
Permissions
需要具有对该表的 ALTER 权限。
使用 SQL Server Management Studio (SSMS)
使用 SSMS 修改列的数据类型
在 对象资源管理器 中,右键单击包含要更改小数位数的列的表,然后选择 设计。
选择要修改数据类型的列。
在“列属性”选项卡中,选择“数据类型”属性的网格单元格,再从下拉列表中选择新的数据类型。
在“文件”菜单上,选择“保存表名”。
Note
当您修改列的数据类型时,即使已为所选数据类型指定其他长度,表设计器也会使用该数据类型的默认长度。 在指定数据类型之后,始终需要将数据类型长度设置为所需的值。
Warning
如果您尝试修改与其他表相关的列的数据类型,表设计器会要求您确认也应该对其他表中的列进行更改。
使用 Transact-SQL
使用 Transact-SQL 修改列的数据类型
在 “对象资源管理器” 中,连接到数据库引擎实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。
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
有关使用 ALTER TABLE 修改列的更多信息,请参阅 ALTER TABLE column_definition。