想通过一个SQL脚本,启用一个批处理,然后在批处理里面执行若干脚本。
SQL脚本内容如下:
exec Sp_Configure 'Xp_CmdShell',1 RECONFIGURE --配置可以执行CMD命令 exec xp_cmdshell 'D:\xxx.bat' exec Sp_Configure 'Xp_CmdShell',0 --关闭执行CMD命令 RECONFIGURE
批处理文件内容如下:
@echo off echo ***用批处理执行升级脚本*** rem osql -S 数据库服务器IP -d 数据库名 -U 登录名 -P 密码 -i D:\1.sql osql -S 127.0.0.1 -d master -E -O -i D:\2.sql pause
这样可以在升级程序里面执行脚本,然后在批处理里面选择需要执行的脚本来增量升级。
参数:
"'OSQL' 不是内部或外部命令,也不是可运行的程序或批处理文件。"解决办法:
[code=BatchFile]rem 解决办法一,输入命令全路径
"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe" /?
start "" "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe" /?
call start "" "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe" /?
rem 解决办法二,设置临时path
path=%path%;C:\Program Files\Microsoft SQL Server\80\Tools\Binn
osql /?
rem 解决办法三,设置当前用户path
reg add "HKEY_CURRENT_USER\Environment" /v PATH /t reg_sz /d "C:\Program Files\Microsoft SQL Server\80\Tools\Binn" /f
osql /?
rem 解决办法四,设置当前系统path
rem win+break -^> 高级 -^> 环境变量 -^> 用户或系统变量中的path设置[/code]