我有SQL Server数据库,我刚刚意识到,我可以改变其中一列的类型从int到bool。

我怎样才能做到这一点而不丢失已经输入到表中的数据呢?


当前回答

如果你使用T-SQL(MSSQL);你应该试试这个脚本:

ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)

如果你使用MySQL;你应该试试这个脚本:

ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)

如果你使用甲骨文;你应该试试这个脚本:

ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)

其他回答

在精简版中,将自动获取datetime数据类型的大小,即(8),因此不需要设置字段的大小并为此操作生成错误…

ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)

注意:如果列有大小,也只需写上大小即可。

如果你使用T-SQL(MSSQL);你应该试试这个脚本:

ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)

如果你使用MySQL;你应该试试这个脚本:

ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)

如果你使用甲骨文;你应该试试这个脚本:

ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)

为什么你认为你会丢失数据?只需进入Management Studio并更改数据类型。如果现有值可以转换为bool (bit),它就会这样做。换句话说,如果在原始字段中“1”映射为真,而“0”映射为假,那么就没问题。

进入工具-选项-设计器-表和数据库设计器,取消选中防止保存选项