alter proc sprocname (@arguments.... [!], @outputs tinyint = 3[/!])
as
set nocount on
...
[!]if @outputs & 1 = 1
begin[/!]
-- output 1st set
[!]end[/!]
...
[!]if @outputs & 2 = 2
begin[/!]
-- output 2nd set
[!]end[/!]
go
By default sproc is backward-compatible... but if you call it with @outputs=1 only 1st set would be returned.