If you are returning one type of object ( a record set, a value), then you don't need to specify any parameters as OUTPUT, you simply do a select at the end of the procedure. to return a record set: .... SELECT RowId, CreateTime FROM MyTable to return a single value: .... SELECT @MyVal as ReturnField to return a set of values: .... SELECT @MyVal1 as ReturnField1, @MyVal2 as ReturnField2, @MyVal3 as ReturnField3 These 2 examples return a record set with a single row. These could have been returned as OUTPUT parameters as well, but some people prefer to do it through a select.
If you need to return a value along with a selected result set (like above) then you would want to have output variables set up for the values you need that are outside the results you are returning with your final recordset. There are many ways of getting data from SQL, your front end language and your dev standards will affect the choices you make.