在所有更新字段为nvarchar(50)的表上运行简单更新查询时,我注意到了奇怪的行为。有时候(什么是第一个奇怪的东西)而不是正确更新值,我得到了一些看起来像是计算结果的东西。当我再次运行相同的查询时,结果就像我期望它们在那里一样。 任何人都看过它,知道这个解决方案吗? 请看例子:更新nvarchar导致无穷大或其他未知值
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
预先感谢任何帮助。
向我们展示一些真实的代码。您现在显示的查询/结果显然不相关,因为查询的结果应该是'1 row updated',并且没有结果集。 –
您正在分配字符串值。它不应该被评估为一个表达式。如果该列是数字,则会出现错误。另外,我假设SQL Server因为[]。 – gbn
Damiel_The_Unbelieber - 第一部分是我使用的真实查询。你问的结果是“(1行受影响)”。上面运行查询后,我在数据库中显示了确切的结果。 gbn - 我同意,它不认为它是一个表达。该列是nvarchar(50),我正在传递一个字符串。正确的假设,这是SQL Server 2008,如果它有任何区别。 –