Ani*_*dha 5 sql-server datatypes ddl
我有一个带float列的表。此列中所有记录的所有值都是NULL。我想将数据类型更改为datetime.
我执行了查询:
ALTER TABLE MyTable ALTER Column MyColumn DATETIME NULL
Run Code Online (Sandbox Code Playgroud)
有用。但是当我尝试通过将数据类型设置为来恢复更改时float:
ALTER TABLE MyTable ALTER Column MyColumn FLOAT NULL
Run Code Online (Sandbox Code Playgroud)
我得到了例外:
不允许从数据类型 datetime 隐式转换为 float。使用 CONVERT 函数运行此查询。
请注意,所有记录的 MyColumn 列都为空。
如果列中没有数据,您可以将其删除并再次添加。
alter table MyTable drop column MyColumn;
go
alter table MyTable add MyColumn float;
Run Code Online (Sandbox Code Playgroud)
如果您的列中有数据并且将值转换为浮点值是有意义的,您可以重命名列、添加新列、移动数据convert,然后删除旧列。
exec sp_rename 'MyTable.MyColumn', 'Temp_MyColumn', 'COLUMN';
go
alter table MyTable add MyColumn float;
go
update MyTable
set MyColumn = convert(float, Temp_MyColumn)
where Temp_MyColumn is not null;
go
alter table MyTable drop column Temp_MyColumn;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37796 次 |
| 最近记录: |