如何更改SQL数据库中的列数据types而不丢失数据
我有SQL Server数据库,我只是意识到,我可以将其中一列的types从int
更改为bool
。
我怎么做,而不会丢失已经input到该表中的数据?
您可以使用以下命令轻松完成此操作。 任何0的值都会变成0(BIT = false),其他任何值都会变成1(BIT = true)。
ALTER TABLE dbo.YourTable ALTER COLUMN YourColumnName BIT
另一个select是创build一个新的BIT
types的列,从旧的列中填充,一旦完成,删除旧的列并将其重命名为旧的名称。 这样,如果在转换过程中出现了问题,您可以随时返回,因为您仍然拥有所有数据。
如果这是一个有效的变化。
你可以改变属性。
工具 – >选项 – >devise人员 – >表和数据库devise人员 – >取消选中 – >防止保存更改所需的表重新创build。
现在,您可以轻松更改列名称,而无需重新创build表或丢失urlogging。
你为什么认为你会丢失数据? 只需进入Management Studio并更改数据types。 如果现有的值可以转换为布尔(位),它会这样做。 换句话说,如果“1”映射为true,并且“0”在原始字段中映射为false,则可以。
ALTER TABLE tablename ALTER COLUMN coulumnname columndatatype(size)
注意:如果有一个列的大小,也只是写大小。
转到工具 – 选项 – devise器 – 表和数据库devise器,并取消选中防止保存选项
如果您使用T-SQL(MSSQL); 你应该尝试这个脚本:
ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)
如果你使用MySQL; 你应该尝试这个脚本:
ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)
如果你使用Oracle; 你应该尝试这个脚本:
ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)
在紧凑版本将自动采取date时间数据types的大小,即(8),所以不需要设置字段的大小,并为此操作产生错误…
我可以修改表字段的数据types,使用以下查询:也可以在Oracle数据库中,
ALTER TABLE table_name MODIFY column_name datatype;
replace数据types而不会丢失数据
alter table tablename modify columnn newdatatype(size);