OSQL with stored procedure output parameter


I tried to use osql to execute stored procedure with some input parameters and one output parameter, how I can do this.

Who is Participating?
LowfatspreadConnect With a Mentor Commented:
but you've got a big(ger) security hole here anyway surely by having procedure with
SA user id and passwords included within them.....

wouldn't you be better scheduling the stored procedure on Server A
and then getting it to pass its output to server B ....

perhaps even doing the data transfer via replication...

or have b regularly read (for the file A produces)  
and process it that way via some temporary tables....

what is the data?
post what your doing...


osql -SserverName -ddatabasename -E -iinputfile.sql -ooutputfile.sql

would look something like
 run the xxx proc
Declare @Outparm Varchar(8000)
Declare @RC Int

Exec @RC = ServerName.DabataseName.Owner.StoreprocedureName  'INPUT1','INPUT2',@Output Output

Print @Outparm

/* return sp execution status to DOS */
EXIT (Select @RC)


if not using a trusted connection then replace the -E with -Uuserid -Ppassword


changeexpertAuthor Commented:

Tried to run this and "stp_s_StoredProc" will accept 2 input parameters and 1 output parameter, the I will use the output parameter value as variable for another query.  This line is included in another stored proc.  Can I do this way instead of using inputfile/outputfile?

exec master..xp_cmdshell 'osql /U "SA" /P "ABC" /S "ServerName" /Q "stp_s_StoredProc"

yes you can specify the query to be executed via the Q (Query parameter instead)
but you not going to get the output variable that way....

what are you actually trying to do...

why do you need to run this in batch...

you maybe better off constructing a wrapper stored procedure to call the ones you want to invoke...

changeexpertAuthor Commented:

I have stored proc that sit on SQL Server A and on SQL Server B will schedule a job to execute stored proc B on SQL B and inside this stored proc will execute stored proc A on SQL A and use the output parameter value in stored proc B.

I know I can use linked server to do execute stored proc A remotely.  However, people do not like the idea of "Linked" two servers for security reason.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.