小编kov*_*alu的帖子

BAT文件中的SQLCMD实用程序 - 如果语法错误,如何返回ERRORLEVEL

当某些.sql文件包含语法错误时,如何从SQLCMD实用程序获取%ERRORLEVEL%?这些文件创建存储过程.他们不会调用"raiseerror",但是他们可以控制语法错误,我需要终止进程.但它总是将%ERRORLEVEL%返回为0.我尝试使用-b,-V和-m(以及它们的组合),但没有按预期对我有效.

这是我的BAT文件的代码片段.

REM process all sql files in "SQL\scripts" folder and subfolders
FOR /R "SQL\scripts" %%G IN (*.sql) DO (
    sqlcmd -d %1 -S %2 -U %3 -P %4 -i "%%G" -b -V 1

    echo %ERRORLEVEL%
    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
)
Run Code Online (Sandbox Code Playgroud)

sql batch-file sqlcmd syntax-error

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

batch-file ×1

sql ×1

sqlcmd ×1

syntax-error ×1