在所有更新字段爲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,如果它有任何區別。 –