One thing that I would add to the batch files is to store the %ERRORLEVEL% value before going onto the next step. This way you can add flexability based on the result of the previous command. Depending on what happens, you can get different errorlevel values. It is one thing that you may find as you encounter different errors you may modify your batch files.
Example
osql ....
set ERRLVL=%ERRORLEVEL%
echo osql return : %ERRLVL%
if %ERRLVL%==0 goto nextstep
if %ERRLVL%==1 goto warning
if %ERRLVL%==2 goto error