Почему T-SQL преобразует мои ДЕСЯТИЧНЫЕ данные в INT? - PullRequest
0 голосов
/ 06 марта 2019

У меня есть таблица со столбцом, определенным следующим образом:

PrincipalBalance DECIMAL(13,2) NOT NULL

У меня есть хранимая процедура, которая возвращает это значение следующим образом:

SELECT D.PrincipalBalance
  FROM MyTable AS D
 WHERE ID = @myKey;

Если я проверяю метаданные длятаблица, определение столбца является правильным (оно отображается как DECIMAL(13,2).) Оно также отображается с правильным типом в обозревателе объектов.Однако IntelliSense для столбца в хранимой процедуре показывает, что это INT, что вызывает недоумение.

Единственный обходной путь, который я нашел для этого, заключается в использовании CAST / CONVERT вхранимая процедура, которая кажется ненужной.

Примечание Ранее сегодня я столкнулся с той же проблемой с десятичным столбцом, который возвращался как VARCHAR(50) (или каким-либо другимсоответствующая длина).Интересно, что в обоих случаях значение десятичного столбца было равно нулю.

Что здесь происходит?Почему SQL Server выбирает неправильный тип?

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