Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将数据类型varchar转换为数字时出错_Sql Server - Fatal编程技术网

Sql server 将数据类型varchar转换为数字时出错

Sql server 将数据类型varchar转换为数字时出错,sql-server,Sql Server,更新表集测试=转换(varchar(53),转换(电话号码为十进制))如果电话号码有任何字母或符号字符,转换为十进制时将失败: Update table set Test = Convert(varchar(53), Cast(Phone_Number as Decimal)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 您的问题非常模糊,但您可以尝试: Update YourTable

更新表集测试=转换(varchar(53),转换(电话号码为十进制))

如果电话号码有任何字母或符号字符,转换为十进制时将失败:

Update table set Test = Convert(varchar(53), Cast(Phone_Number as Decimal))
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
您的问题非常模糊,但您可以尝试:

Update YourTable
    SET Test=CASE 
                 WHEN ISNUMERIC(Phone_Number)=1 THEN Convert(varchar(53), Cast(Phone_Number as Decimal)) --this is your code unchanged
                 ELSE Phone_Number
             END
...

测试和电话号码是什么数据类型?如果更新针对表中的每一行(示例代码没有WHERE),那么如果只有一个
Phone\u Number
具有坏字符,则整个更新将失败。运行
从您的表中选择*,其中ISNUMERIC(Phone_Number)=0
查找所有“坏”行。