c# - Is it safe to Alter an existing stored procedure to use output parameters? -


can changing existing parameter of stored procedure output parameter have impact on existing code?

for context, have stored procedure accepts , modifies parameter, returning modified parameter selecting it. c# callers receive returned parameter via sqlcommand.executereader.

the stored procedure looks this:

create procedure upsertdata     @objectid int, --this line change     ...  if not exists (select objectid mytable objectid = @objectid) begin     insert mytable (...) values (...)     set @objectid = (select scope_identity() int) end else begin     update mytable     set ...     objectid=@objectid end select @objectid 

i intend call stored procedure within other stored procedures. using insert-exec allow me avoid modifying upsertdata, used in several places.

however, strikes me cleaner replace @objectid int, @objectid int output,. unsure if safe; stored procedure called in many places, fear might break in unanticipated fashion. is legitimate concern?

it seems safe.

from https://technet.microsoft.com/en-us/library/ms187004%28v=sql.105%29.aspx :

you can execute stored procedure output parameters , not specify output when executing stored procedure. no error returned, cannot use output value in calling program.


Comments