Как предотвратить округление sql: variable в xml.modify () при вставке какого-либо узла? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь вставить новый узел в переменную xml, этот новый узел содержит значение некоторой числовой переменной.Значение этой числовой переменной округляется в результирующем xml.

Вот мой пример кода:

declare @param numeric(19, 15) = 0.000000000012345; declare @xml xml = '<params/>'; set @xml.modify('insert <param>{sql:variable("@param")}</param> into (params)[1]'); select @param as [param], @xml as [params];

Я хотел бы иметь точное числовое значение в результирующем xml.

1 Ответ

0 голосов
/ 11 июля 2019

Решением может быть преобразование числового значения в строку перед передачей его в функцию изменения:

declare @param numeric(19, 15) = 0.000000000012345;
declare @paramString nvarchar(max) = convert(nvarchar(max), @param);
declare @xml xml = '<params/>';
set @xml.modify('insert <param>{sql:variable("@paramString")}</param> into (params)[1]');
select @param as [param], @paramString as [paramString], @xml as [params];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...