在SQL Server Management Studio中,将设计视图中的现有字段从DECIMAL (16,14)
更改为DECIMAL (18,14)
时,如果不删除整个表及其所有数据,则不允许保存。
一旦数据库填充了记录,是否可以更改字段类型?
答案 0 :(得分:56)
只需使用T-SQL脚本代替可视化设计器即可实现目标:
ALTER TABLE dbo.YourTableNameHere
ALTER COLUMN YourColumnNameHere DECIMAL(18, 14)
你应该没事。
视觉设计师采用额外的谨慎路线创建具有新结构的表格,然后复制所有数据 - 它可以工作,但这很乏味。通常,只要不截断列(使其更短),就可以使用T-SQL语句“就地”更改列的数据类型。
另外:默认情况下,SSMS设计人员要格外小心,不允许任何需要删除和重新创建表循环的更改。您可以在Tools > Options
中禁用此额外的小心,然后在此对话框中禁用:
如果取消选中该选项,您将能够在视觉设计器中进行“破坏性”更改
答案 1 :(得分:0)
即使在SSMS中未选中该选项,Designer仍会删除该表。下次它不会提示你它。为了证明,启动SQL分析器并使用SSMS设计器更改列,您将看到在执行Alter table命令之前发出的drop table命令。