我有以下情况:
我需要执行在服务器上编译的SQL Server存储过程,并传递一些值。我正在创建一个批处理文件来执行此任务。像这样:
@ECHO OFF
ECHO Enter the initial date in YYYYMMDD format (eg. 20171201):
SET /p pi_dte_ini=
ECHO Enter the final date in YYYYMMDD format (eg. 20171231):
SET /p pi_dte_end=
sqlcmd -Q "exec my_on_the_server_sp %pi_dte_ini%, %pi_dte_end%" -S server\instance
PAUSE
问题是我必须在用户的网络机器上执行此.bat。这台机器没有安装SQL Server,因此无法运行sqlcmd。欢迎任何建议。
问候!
答案 0 :(得分:0)
您不必回显然后运行set /p
。而是将回声文本添加为set /p
的一部分
要远程执行sqlcmd
,请使用wmic
@Echo off
Set /p "pi_dte_ini=Set the initial date with YYYYMMDD format (eg: 20171201) and press Enter: "
Set /p "pi_dte_end=Set the final date with YYYYMMDD format (eg: 20171231) and press Enter: "
wmic /node:"servername" process call create ""cmd.exe /c sqlcmd -Q "exec my_on_the_server_sp %pi_dte_ini%, %pi_dte_end%" -S server\instance"
Pause
我无法测试这个,因为我没有sqlcmd,但你可能需要在wmic
调用中调整双引号。