sql-server - 尝试更新 SQL Server 中的列值会导致错误?
问题描述
我在 SQL Server 表中有一个列(attr14
:decimal(10,5)
作为类型),其中有许多我想用 0 值替换的 NULL 值,在 SQL Server 中我执行如下查询:
UPDATE [myds].[dbo].[mytable]
SET [myds].[dbo].[mytable].[attr14] = 0
WHERE [myds].[dbo].[mytable].[attr14] = NULL;
但这会导致以下错误:
将数据类型 varchar 转换为数字时出错。
如果我运行:
UPDATE [myds].[dbo].[mytable]
SET [myds].[dbo].[mytable].[attr14] = 0.0
WHERE [myds].[dbo].[mytable].[attr14] = NULL;
0行受到影响
attr14
然后,当列中有 NULL 值时,不会影响任何行
解决方案
如果您的列 attr14 的数据类型为小数(10,5),那么您可以尝试这样。
USE [myds]
UPDATE [dbo].[mytable]
SET [attr14] = 0.0
WHERE [attr14] IS NULL;
推荐阅读
- vb.net - Select several levels of childs
- angular - 使用微服务处理子数据
- php - 为什么存在合法的字符串偏移量以及如何解决它?
- download - 为什么我的 Jenkins Artifactory 插件在下载后提取“.zip”而不是“.tgz”?
- webots - 改变地板的原点
- angular - Angular:值更改如何知道值是通过 UI 设置还是以编程方式设置
- jenkins - 声纳链接正在路由到 localhost:9000。不使用 IP 如何更改它
- php - 检查数据库后取消表单提交
- amazon-web-services - AWS cognito AUTHORIZATION Endpoint 返回错误请求 (400)
- typescript - 无法创建泛型参数类的对象