ОБНОВЛЕНИЕ nvarchar приводит к бесконечности или другим неожиданным значениям - PullRequest
0 голосов
/ 19 января 2012

Во время выполнения простого запроса на обновление таблицы, где все обновленные поля - 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

Заранее спасибо за любую помощь.

1 Ответ

3 голосов
/ 19 января 2012

Это не от SQL Server.

В SQL Server нет такой логики для вычисления вычислений и возврата строк, таких как «Бесконечность».

У вас должны быть триггеры в таблице, которая выполняет это переписывание, или все, что вы используете для отправки запроса, переписывает его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...