Хранимые процедуры могут возвращать скалярные значения через выходные параметры. Вот пример (из здесь ).
Создайте сохраненную процедуру следующим образом:
CREATE PROCEDURE _4P_test
@intInput int,
@intOutput int OUTPUT
AS
set @intOutput = @intInput + 1
go
Назовите это так:
declare @intResult int
exec _4P_test 3 ,@intResult OUT
select @intResult
Однако вы должны попытаться спроектировать свою систему так, чтобы вам не приходилось использовать динамический SQL так, как вы описали.