如何更改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一个新的BITtypes的列,从旧的列中填充,一旦完成,删除旧的列并将其重命名为旧的名称。 这样,如果在转换过程中出现了问题,您可以随时返回,因为您仍然拥有所有数据。

如果这是一个有效的变化。

你可以改变属性。

工具 – >选项 – >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);