Iva*_*nov 192 sql-server alter sql-server-2008
我有SQL Server数据库,我才意识到我可以将其中一个列的类型更改int为bool.
如何在不丢失已输入该表的数据的情况下执行此操作?
mar*_*c_s 319
您可以使用以下命令轻松完成此操作.任何值0都将变为0(BIT = false),其他任何值都将变为1(BIT = true).
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName BIT
Run Code Online (Sandbox Code Playgroud)
另一个选项是创建一个新类型BIT的列,从旧列填充它,一旦完成,删除旧列并将新列重命名为旧名称.这样,如果转换过程中的某些内容出错,您可以随时返回,因为您仍然拥有所有数据.
小智 20
ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)
Run Code Online (Sandbox Code Playgroud)
注意:如果有列的大小,也只需写入大小.
小智 19
如果是有效的更改.
你可以改变财产.
工具 - >选项 - >设计器 - >表和数据库设计者 - >取消选中 - >防止保存需要重新创建表的更改.
现在,您可以轻松更改列名,而无需重新创建表或丢失记录.
小智 9
如果你使用 T-SQL(MSSQL); 你应该试试这个脚本:
ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)
Run Code Online (Sandbox Code Playgroud)
如果你使用 MySQL;你应该试试这个脚本:
ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)
Run Code Online (Sandbox Code Playgroud)
如果您使用 Oracle;你应该试试这个脚本:
ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)
Run Code Online (Sandbox Code Playgroud)
为什么你认为你会丢失数据?只需进入Management Studio并更改数据类型即可.如果现有值可以转换为bool(bit),它就会这样做.换句话说,如果"1"映射到true而"0"在原始字段中映射为false,那么你会没事的.
| 归档时间: |
|
| 查看次数: |
613809 次 |
| 最近记录: |