Передать переменную XML из хранимого процесса в другой хранимый процесс на сервере SQL - PullRequest
0 голосов
/ 10 октября 2019

У меня есть 2 сохраненных процесса.

Первый получает в качестве входного параметра некоторые переменные, и одна из них - XML.

Внутри этого процесса я вызываю другой процесс, но динамически такой. Этот процесс обрабатывает XML для вставки его в БД.

SET @SQL = 'EXEC [' + @ServerIp + '].[List_' + CAST(@AccountId AS VARCHAR) + '].[dbo].[psu_proc_name] @ParameterId = ' + CAST(@ParameterId AS VARCHAR) + ',@MappingFields = ' + @MappingFields

@ MappingFields - это имя переменной XML в первом процессе, а также во втором процессе (называемом динамически)

Мне удается обработать XML во втором процессе (динамическом), но я не знаю, как передать параметр в виде XML во второй процесс.

Спасибо

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Лучший способ сделать это - использовать хранимую процедуру sp_executesql вместо команды simle exec. См. Не повторяющиеся, но очень четкие примеры в вопросе EXEC sp_executesql с несколькими параметрами для простоты понимания деталей.

0 голосов
/ 11 октября 2019

я пробовал что-то подобное:

SET @SQL = N'EXEC [' + @ServerIp + '].[List_' + CAST(@AccountId AS VARCHAR) + '].[dbo].[psu_opensystem_field_mapping_add]'
EXEC sp_executeSQL @SQL, N'@ParameterId INT, @MappingFields XML' , @ParameterId, @MappingFields

Но там написано, что

Procedure or function 'psu_opensystem_field_mapping_add' expects parameter '@ParameterId', which was not supplied
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...