Здравствуйте, 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