编码笔记

导航

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]

 

posted on 2013-06-09 18:06  封三郎  阅读(328)  评论(0编辑  收藏  举报