How can I ignore an output parameter of a stored procedure? I'm calling the procedure from another procedure, e.g.:
DECLARE @param1 integer
EXEC mystoredprocedure
@in_param_1,
@in_param2_,
@param1 OUTPUT,
-- what do I type here to ignore the second output param??
I'm using T-SQL (MS SQL 2005).
You can just use NULL as the last parameter, and it should work fine - as long as that parameter isn't expected for input logic in the proc as well.
In your case, you'd call the proc as
exec mystoredproc @in_param_1, @in_param2_, @param1 OUTPUT, null
Here's another example that for the same scenario...
create proc MyTempProc
(@one int,
@two int out,
@three int out)
AS
begin
set @two = 2
set @three = 3
select @one as One
end
go
declare @p1 int,
@p2 int
set @p1 = 1
exec MyTempProc @p1, @p2 out, null
print @p1
print @p2
The output parameter has to have a default in order for you to not pass it. See below
create proc x (@in int = null, @out int = null OUTPUT)
as
Begin
Select @in
End
exec x 1
EDIT
To clarify a little, the error is being returned because the stored procedure that is being called has a parameter defined (in this case @param1), for which no default is defined. (i.e. @param1 int rather than @param int = -1) In the case where neither a parameter or default is specified for a defined parameter of a stored procedure when calling the stored procedure an error will occur. The same thing would happen if you tired to omit an input parameter that does not have a default specified.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With