0

在所有更新字段均为 nvarchar(50) 的表上运行简单更新查询时,我注意到奇怪的行为。有时(第一个奇怪的事情是什么)而不是正确更新值,我得到的东西看起来像是一些计算的结果。当我再次运行相同的查询时,结果就像我期望它们在那里一样。任何人以前见过它并知道任何解决方案吗?请看示例:

Query:
UPDATE Tabl1 
SET [D1] = '43 / 57.43 %', [D2] = '20 / 41.18 %', [D3] = '145 / 27.50 %', 
    [D4] = '59 / 28.92 %', [D5] = '143 / 36.44 %', [D6] = '14 / 53.33 %', 
    [D7] = '0 / 0.00 %', [D8] = '424 / 37.00 %',[D9] = '0 / 0.00 %' 
WHERE [key] = 28

Result:
D1 = 100
D2 = 100
D3 = 100
D4 = Infinity
D5 = 41.67
D6 = 100
D7 = 100
D8 = Infinity
D9 = Infinity

提前感谢您的帮助。

4

1 回答 1

3

这不是来自 SQL Server。

SQL Server 没有这样的逻辑来评估计算并返回像“Infinity”这样的字符串。

您必须在执行此重写的表上具有触发器,或者您用于提交查询的任何东西都会重写它。

于 2012-01-19T13:40:39.647 回答