使用OSQL命令时如何批量获取错误名称?

时间:2012-09-24 08:06:33

标签: sql-server-2005 batch-file osql

我创建了一个执行sql命令的批处理文件。

让我们看看这段代码

SET OSQL="C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\osql.exe"
IF NOT EXIST %OSQL% ECHO OSQL.EXE not found, please check the OSQL variable!
IF NOT EXIST %OSQL% GOTO :ERROR

SET SQLQUERY_UPDATEDB = "SELECT * FROM %DB%";

%OSQL% -S %SQLSERVERNAME% -d %DBNAME% -U %DBACCOUNT% -P %DBPASSWORD% -Q %SQLQUERY_UPDATEDB% -n -b -m-1 > D:\sqloutput.txt

:ERROR
ECHO Sorry, could not complete your request!
ECHO %ERRORLEVEL%
GOTO :END

:END
ECHO Finish batch

上面的代码部分总是返回0和Sorry, could not complete your request!。什么意思?

如何设置在控制台中显示错误以确切地查看错误是什么?

我添加了-m-1,我使用MSDN相应地删除了-h-1,但未在我的控制台中显示。

谢谢。

1 个答案:

答案 0 :(得分:1)

庵。因为即使它成功运行SQL命令,它也会进入错误处理程序?

运行命令后尝试添加GOTO :END

SET SQLQUERY_UPDATEDB = "SELECT * FROM %DB%";

%OSQL% -S %SQLSERVERNAME% -d %DBNAME% -U %DBACCOUNT% -P %DBPASSWORD% -Q %SQLQUERY_UPDATEDB% -n -b -m-1 > D:\sqloutput.txt
GOTO :END

:ERROR