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