Saludos, al revisar la documentación oficial de sp_executesql observo que no se presenta la forma de obtener el valor devuelto por un procedimiento almacenado, aquí un ejemplo:
create procedure MiProcedimiento as Begin return 2 --Valor arbitrario End declare @script nvarchar(4000) declare @filasAfectadas int = 0 set @script = 'exec @filasAfectadas = MiProcedimiento' exec sp_executesql @script, N'@filasAfectadas int output', @filasAfectadas=@filasAfectadas output print @filasAfectadas
Al ejecutar el script de ejemplo observamos que se obtiene el resultado del valor devuelto por el procedimiento, la parte clave es pasar una variable marcada con output para tener el resultado
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP