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

时间:2012-06-14 14:29:46

标签: sql sql-server sql-server-2008 tsql

在SQL Server Management Studio中,将设计视图中的现有字段从DECIMAL (16,14)更改为DECIMAL (18,14)时,如果不删除整个表及其所有数据,则不允许保存。

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

2 个答案:

答案 0 :(得分:56)

只需使用T-SQL脚本代替可视化设计器即可实现目标:

ALTER TABLE dbo.YourTableNameHere
ALTER COLUMN YourColumnNameHere DECIMAL(18, 14) 

你应该没事。

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

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

enter image description here

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

答案 1 :(得分:0)

即使在SSMS中未选中该选项,Designer仍会删除该表。下次它不会提示你它。为了证明,启动SQL分析器并使用SSMS设计器更改列,您将看到在执行Alter table命令之前发出的drop table命令。