我的批量文件看起来像这个
ECHO OFF
SET /P colu= Enter column name:
SET /P sn= Enter ID (Press enter when finished):
if %sn%={ENTER}
GOTO START
:START
sqlcmd -U USER -P PWORD -S SERVER -d DBNAME-i sqlSCRIPT.sql -o LOG.txt
-v delete=colu d_id=sn
我希望用户能够在一行中输入多个ID。这些ID将使用 sqlScript.sql 从数据库中删除,但是此代码不允许我输入多个ID。
它将我输入的值视为1整数值。
例如,如果我输入 1,2,3 (作为单独的值),它会将其视为' 1,2,3'作为一个整体价值。
答案 0 :(得分:1)
您的代码中存在以下几个问题:
colu
和sn
,以避免使用某些以前的值; if
子句没有意义,语法错误; %colu%
; for
循环; sqlcmd
命令行中间有一个换行符; 以下应该做你想做的事:
@ECHO OFF
SET colu=
SET sn=
SET /P colu= Enter column name:
SET /P sn= Enter ID (Press enter when finished):
FOR %%I IN (%sn%) DO (
sqlcmd -U USER -P PWORD -S SERVER -d DBNAME-i sqlSCRIPT.sql -o LOG.txt -v delete=%colu% d_id=%%I
)
答案 1 :(得分:-1)
使用FOR
循环设置一个逗号(,)作为分隔符,然后使用另一个FOR
循环来处理每个i.d的SQL命令。