получить сервер sql, чтобы предупредить об усечении / округлении - PullRequest
1 голос
/ 12 июля 2011

Я работаю над бухгалтерским приложением ASP.NET C # и перехожу к использованию чисел с плавающей запятой / двойных чисел к использованию десятичных дробей для представления денег.

Теперь я хочу контролировать, когда и где происходит округление. Насколько я понимаю, SQL-сервер округляет десятичные типы данных иначе, чем в C #.

Есть ли какой-нибудь способ заставить сервер SQL Server (2008) предупреждать или давать сбой, если десятичные значения (или любой тип данных) усекаются или округляются?

Спасибо

1 Ответ

3 голосов
/ 12 июля 2011

Посмотрите на SET NUMERIC_ROUNDABORT и таблицу с SET ARITHABORT

Это определяет, ничего не происходит или что-то происходит. Что-то (ошибка или предупреждение) зависит от SET ARITHABORT. Тем не менее, вы получаете NULL за предупреждение.

Я бы подумал о том, чтобы выполнить ваши вычисления в клиентском коде или использовать широкий десятичный код (например, 38,20) для его смягчения

...