如何跳过文件集中的一个文件?

时间:2012-03-12 06:09:36

标签: batch-file sqlcmd

以下是我在批处理文件中的代码:

for %%f in (%~dp0*.sql) do (
sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%%f" >>TsDeploy.txt 2>&1
)

问题是该集合中有一个文件必须不是第一个运行。(因为其他文件是关于create Table的脚本文件,那个是将数据插入到表中)。

如何在仅一个批处理文件中实现目标?

1 个答案:

答案 0 :(得分:1)

您可以重命名不能先运行的sql文件,以便排序到最后(带有z的前缀?)。

或者你可以做类似

的事情
for %%f in (%~dp0*.sql) do (
  if "%~nxf" neq "fileNameNotToRunFirst.sql" (
    sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%%f" >>TsDeploy.txt 2>&1
  )
)
sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%~dp0fileNameNotToRunFirst.sql" >>TsDeploy.txt 2>&1

或者您可以创建一个主sql脚本,按照正确的顺序调用其他每个脚本,如How to Run a Series of T-SQL Scripts in a Specific Order

中所述