Re: NUMERIC_ROUNDABORT и arithmetic overflow
От: _d_m_  
Дата: 14.05.09 02:28
Оценка:
Здравствуйте, Saruwatari, Вы писали:

S>MSSQL 2005


S>У меня есть проблема с потерей точности...

S>Вот код, который генерит сообщение: 'Arithmetic overflow error converting numeric to data type numeric.'
...
S>Мне нужно оставить SET NUMERIC_ROUNDABORT ON и убрать сообщение о потере точности с помощью конфертации или подгонки типов.
S>Такое вообще можно сделать?

Ну вот так например:
SET NUMERIC_ROUNDABORT ON
DECLARE
    @x DECIMAL(9, 1),
    @y DECIMAL(15, 5)
 
SET @x = 10000000.0;

SELECT
    SUM(N * N)
FROM
    (SELECT @x * @x as N
    UNION ALL
    SELECT @x * @x
    UNION ALL
    SELECT @x * @x
    UNION ALL
    SELECT @x * @x
) T
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.