我是Batch的新手。
我的代码:
@ECHO OFF
SET colu=
SET sn=
SET /P colu= Enter column name:
SET /P sn= Enter ID :
sqlcmd -U USER -P PWORD -S SERVER -d DBNAME-i sqlSCRIPT.sql -o LOG.txt -v delete=%colu% d_id=%%I
pause
SET /P sn= Enter ID :
sqlcmd -U USER -P PWORD -S SERVER -d DBNAME-i sqlSCRIPT.sql -o LOG.txt -v delete=%colu% d_id=%%I
pause
SET /P sn= Enter ID :
sqlcmd -U USER -P PWORD -S SERVER -d DBNAME-i sqlSCRIPT.sql -o LOG.txt -v delete=%colu% d_id=%%I
代码工作并执行我需要它执行的操作,这是从db中删除记录但我希望有更有效的方法来编写它。
我如何批量生成一个while循环,在按下结束键之前不断要求用户输入ID?我也意识到暂停 sqlcmd之间非常不方便。
答案 0 :(得分:2)
这样的事情怎么样:
@ECHO OFF
SETLOCAL
SET /P "colu=Enter column name:"
:Prompt
REM Clear any existing values.
SET "sn="
ECHO Enter a blank value to stop the operation.
SET /P "sn=Enter ID:"
REM Check for exist conditions.
IF "%colu%"=="" GOTO :EOF
IF "%sn%"=="" GOTO :EOF
REM If we get here, data was entered for both
sqlcmd -U USER -P PWORD -S SERVER -d DBNAME-i sqlSCRIPT.sql -o LOG.txt -v delete=%colu% d_id=%sn%
ECHO.
ECHO.
REM Ask again.
GOTO Prompt
:EOF
ENDLOCAL
这将继续提示,直到您为colu
或sn
输入空白值。另外,我注意到您在SQL语句中使用%%I
- 我认为您打算使用%sn%
代替。