bat文件调用 sql命令后 不继续执行???

我在a.bat中调用另外一个b.bat。b.bat的sql语句执行结束(成功执行),不返回控制台。是为什么呢。
执行结果:
-----------
message 1
>
>(这里为什么不继续执行"echo message 2"命令呢)
-----------

a.bat内容:
-----------------
@echo off
echo message 1
call "b.bat" >> log.txt
echo message 2
-----------------

b.bat内容:
-----------------
osql "XXXXXXXX"(为备份数据库语句)
-----------------
此问题本人已解决。方法:osql 后面加了参数 /Q
/Q 执行查询并立即退出osql。将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。
追加提问,b.bat中使用for循环调用 osql语句。为什么循环1次可以(执行成功),循环多次就不执行了。
b.bat内容:
-----------------
for /L %%i in (1,1,10) do (
call osql /Q " XXXXXX " (修改表中某一字段的值,下次循环时修改下一个。只循环1次可以。)
)
-----------------

osql "XXXXXXXX" -Q

C:\Documents and Settings\Administrator>osql /?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

注意: osql 并不支持 SQL Server 2005的所有功能。
请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。

用法: osql [-U 登录 ID] [-P 密码]
[-S 服务器] [-H 主机名] [-E 可信连接]
[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
[-h 标题] [-s 列分隔符] [-w 列宽]
[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
[-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称]
[-q "命令行查询"] [-Q "命令行查询" 并退出]
[-n 删除编号方式] [-m 错误级别]
[-r 发送到 stderr 的消息] [-V 严重级别]
[-i 输入文件] [-o 输出文件]
[-p 打印统计信息] [-b 出错时中止批处理]
[-X[1] 禁用命令,[退出的同时显示警告]]
[-O 使用旧 ISQL 行为禁用下列项]
<EOF> 批处理
自动调整控制台宽度
宽消息
默认错误级别为 -1 和 1
[-? 显示语法摘要]

提供
www.8023ni.com
www.jvhao.com
望采纳
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-06
osql不是BAT命令吧,如果想看什么错误的话,最好在句末加上PAUSE,看看是什么情况先
第2个回答  2011-11-06
b.bat内容最后加上goto :eof

bat文件调用 sql命令后 不继续执行???
[-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称][-q "命令行查询"] [-Q "命令行查询" 并退出][-n 删除编号方式] [-m 错误级别][-r 发送到 stderr 的消息] [-V 严重级别][-i 输入文件] [-o 输出文件][-p 打印统计信息] [-b 出错时中止批处理][-X...

关于bat文件执行sql语句的问题
1。这个Warning只是个警告,不影响程序的运行,它只是提醒你密码在命令行的,可以让别的看到(你要自动执行只能如此,否则是要用工输入密码的)2。取当前日期可用 set a= %DATE:~0,10 set b=%a:\/=_这样b的内容就是日期的文件名格式,如2019_9_19 批处理只能作为简单的应用,建议还是用类似C++...

sql文件的.bat文件执行成功后没效果
1、首先检查文件路径是否正确。在 Windows 系统中,可以双击 BAT 文件来运行它。但是,若 BAT 文件的存储路径错误,双击后将会无反应。此时,需要检查文件路径是否正确。2、其次检查 BAT 文件是否存在语法错误。如果 BAT 文件存在语法错误,即使选择运行也无法执行该脚本。此时可以将 BAT 文件的代码复制到...

sql数据库 通过批处理.bat来处理执行sql文件
应该还是在双击运行的时候缺少路径所致(python2.7好像也有这个问题)你试试在批处理中添加一下path变量:set path=%path%;x:\\xxx\\osql.exe或者使用osql.exe的时候直接使用全路径:"x:\\xxx\\osql.exe" -h -s xxxxxxx

一个进程调用bat,调用之前代码中将sqlcmd的路径设置到环境变量中,bat...
第一步:更改权限;默认文件没有可执行权限 chmod g+x jdk-6u12-linux-i586.bin 第二步: 安装 sudo -s .\/jdk-6u12-linux-i586.bin 安装完毕,下面配置环境变量 配置classpath,修改所有用户的环境变量 sudo vi \/etc\/profile 或者 $sudo gedit \/etc\/profile 在文件最后添加 set java ...

bat文件执行SQL语句(50分)
先把你这条语句保存在一个.sql的文件里。然后.bat文件里这样写 osql -s [服务器] -U [用户名] -P [密码] -d [数据库] -n -i [.sql文件]把中括号去掉

bat调用SQL执行语句
存成一个.sql文件,然后使用命令 osql -E -i 你的sql文件命令 或者存成一个.bat文件,但是文件内容要如下写:osql -E -Q "truncate table sys_t_image"osql -E -Q "insert into sys_T_image(model_id, image_id, other,flow_id)"sql文件放在什么位置都可以,你在执行osql的时候可以写出sql...

bat脚本中如何判断一条命令是否执行成功?
1、第一步,将编写的bat批处理文件拖到cmd命令窗口中,以定期清除旧数据,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,执行后返回的错误代码将返回一个错误,并且重复出现该错误提示该乱码字段不是内部或外部命令,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,打开批处理...

请教写过批处理文件的高手,怎么用bat文件调用另一台机器上的存储过程...
针对MSSQL数据库的存储过程,编写 .sql 文件,里面写上调用命令:exec 存储过程名字。然后bat文件 里面, 调用 sqlcmd 传入数据库服务器名(或IP地址)\/用户名\/密码\/ 需要执行的 sql 脚本文件名之类的信息。

sql server 中怎样执行bat文件
因为bat是批处理文件,其实你可以双击运行的,就是不需要在命令提示符下,如果你要在命令提示符下运行的话就直接打文字名加扩展名就行了MWSqlServer90_DBSetup.batsql server是无法运行这样的文件的,只是可能你的脚本中含有sql语句,他就调用了查询分析器执行语句的操作....

相似回答