修改列(数据库引擎)

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

注意事项注意

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

本主题内容

  • 开始之前:

    安全性

  • 若要修改列的数据类型,请使用:

    SQL Server Management Studio

    Transact-SQL

开始之前

安全性

权限

需要对表的 ALTER 权限。

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server Management Studio

修改列的数据类型

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

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

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

  4. 在**“文件”菜单上,单击“保存 table name”**。

注意注意

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

注意事项注意

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

用于“返回首页”链接的箭头图标[Top]

使用 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
    

有关详细信息,请参阅 ALTER TABLE (Transact-SQL)