SQL与批处理

想通过一个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参数列表

"'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]

 

你可能感兴趣的:(sql)