use*_*546 0 sql-server sql-server-2008
您好,当我的表包含值时,我想将表从 nvarchar 更改为 float
我正在尝试这段代码:
alter table MY_TABLE alter column PRICE float
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息 8114,级别 16,状态 5,第 1 行将数据类型 nvarchar 转换为浮点数时出错。
您遇到了问题,因为某些值无法转换为浮点数。
因此,首先删除该值:
update my_table
set price = try_convert(float, price);
Run Code Online (Sandbox Code Playgroud)
然后转换就会起作用:
alter table MY_TABLE alter column PRICE float;
Run Code Online (Sandbox Code Playgroud)
我应该注意: float对于“价格”列来说是一个错误的数据类型。它实际上应该是数字或货币类型。
在 SQL Server 2008 中,请isnumeric()改用:
update my_table
set price = NULL
where isnumeric(price) = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12907 次 |
| 最近记录: |