SQL Server Management Studio - 如何在不删除表的情况下更改字段类型

Pro*_*eus 22 sql t-sql sql-server sql-server-2008

在SQL Server Management Studio中,从改变设计查看现有场时DECIMAL (16,14),以DECIMAL (18,14)它不会让我救不丢弃整个表和它的所有数据.

一旦数据库填充了记录,是否可以更改字段类型?

mar*_*c_s 58

只需使用T-SQL脚本而不是可视化设计器来实现您的目标:

ALTER TABLE dbo.YourTableNameHere
ALTER COLUMN YourColumnNameHere DECIMAL(18, 14) 
Run Code Online (Sandbox Code Playgroud)

你应该没事

视觉设计师采用额外的谨慎路线创建具有新结构的表格,然后复制所有数据 - 它可以工作,但这很乏味.通常,只要不截断列(使其更短),就可以使用T-SQL语句"就地"更改列的数据类型.

另外:默认情况下,SSMS设计人员要格外小心,不允许任何需要删除和重新创建表循环的更改.您可以Tools > Options在此对话框中禁用此额外的小心:

在此输入图像描述

如果取消选中该选项,您将能够在视觉设计器中进行"破坏性"更改

  • @Spark:取消选中此选项允许SSMS执行操作,需要它使用新结构重新创建表,复制所有数据,然后删除旧表,并将临时表重命名为表的名称.你不会**在这个过程中丢失任何数据! (2认同)