首页 > 解决方案 > 尝试更新 SQL Server 中的列值会导致错误?

问题描述

我在 SQL Server 表中有一个列(attr14decimal(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 值时,不会影响任何行

标签: sql-server

解决方案


如果您的列 attr14 的数据类型为小数(10,5),那么您可以尝试这样。

USE [myds]

UPDATE [dbo].[mytable]
    SET [attr14] = 0.0
    WHERE [attr14] IS NULL;

推荐阅读