Я работаю над преобразованием довольно сложной программы .NET WinForms в полностью интегрированный набор sprocs и функций SQL Server.Интеграция SQL CLR - определение функции Параметр Тип
Я работаю над сторонней базой данных, над которой у меня есть no управления вообще.
Уникальные идентификаторы, используемые в этой базе данных, являются numeric(21)
. Не имеет значения, хорошая ли это идея или нет ... Я должен работать в этом ограничении.
У меня возникли проблемы с определением способов кодирования функций, которые используют эти значения. До сих пор я использую System.Decimal
, чтобы сделать это, что, похоже, отлично работает, когда код вызывается из самой DLL.
В SSMS, однако, когда я проверяю любую из функций, тип данных входных параметров составляет numeric(18,0)
. Я предполагаю, что предполагается, что на основе типа System.Decimal
, но это неправильно. И конечный результат в том, что, когда я пытаюсь вызвать функцию вручную (в SSMS), я получаю следующее сообщение об ошибке:
Arithmetic overflow error converting numeric to data type numeric.
Странная вещь, что звонки НЕ неудачу, когда я звоню функции из .dll. Как я могу переопределить обозначение numeric(18,0)
?