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

これはSQLServerからのものではありません。

SQL Serverには、計算を評価して「Infinity」のような文字列を返すようなロジックはありません。

この書き換えを実行するトリガー、またはクエリの送信に使用しているものをテーブルにトリガーして、クエリを書き換える必要があります。

于 2012-01-19T13:40:39.647 に答える