用于从客户端到服务器执行SQL Server存储过程的批处理文件

时间:2018-02-08 12:24:04

标签: sql-server windows batch-file stored-procedures cmd

我有以下情况:

我需要执行在服务器上编译的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。欢迎任何建议。

问候!

1 个答案:

答案 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调用中调整双引号。