其中运行该SQL查询目前排除问题:SQL Server 2008中:错误转换数据类型为nvarchar浮动
UPDATE tblBenchmarkData
SET OriginalValue = DataValue, OriginalUnitID = DataUnitID,
DataValue = CAST(DataValue AS float) * 1.335
WHERE
FieldDataSetID = '6956beeb-a1e7-47f2-96db-0044746ad6d5'
AND ZEGCodeID IN
(SELECT ZEGCodeID FROM tblZEGCode
WHERE(ZEGCode = 'C004') OR
(LEFT(ZEGParentCode, 4) = 'C004'))
导致以下错误:
Msg 8114, Level 16, State 5, Line 1
Error converting data type nvarchar to float.
真正奇怪的是,如果我将UPDATE
更改为SELECT
以检查检索的值是数值:
SELECT DataValue
FROM tblBenchmarkData
WHERE FieldDataSetID = '6956beeb-a1e7-47f2-96db-0044746ad6d5'
AND ZEGCodeID IN
(SELECT ZEGCodeID
FROM tblZEGCode WHERE(ZEGCode = 'C004') OR
(LEFT(ZEGParentCode, 4) = 'C004'))
下面是结果:
DataValue
2285260
1205310
想用TRY_PARSE
或类似的东西;但是,我们正在运行SQL Server 2008而不是SQL Server 2012.有没有人有任何建议? TIA。
'当isnumeric(datavalue)= 1'时,否则不会编译。 – GSerg 2012-02-03 23:20:38
@GSerg,谢谢! – csm8118 2012-02-03 23:27:26
谢谢,效果很好! – Roger 2012-02-06 17:57:58