Yes you can have procedure with multiple outputs. As for resultset, it has to be a select statement in the procedure. Stored procedure can not return results as table; Function can do it.create proc proc_xxxxxx (@i int, @o1 varchar(10) output, @o2 varchar(10) output)asselect @o1 = v1, @o2 = v2 from t1 where id = @i -- set your values for outputselect * from t1 where id = @i -- Your result set query-----------------------------Execute your proc:declare @out1 varchar(10), @out2 varchar(10)exec proc_xxxxxx 1, @o1=@out1 output, @o2 = out2 outputselect @out1, @out2