作为开发人员,不可避免的会涉及到对数据库的操作,无论时常见的Mysql、SQLServer、Oracle数据库,还是APP常用的Sqlite和移动应用用到的Web SQL Databases等,而在使用这些数据库的过程中,常见的操作都是界面或后台处理程序对数据库进行数据库的更改,可是随着应用的上线,常见于网站中,对于普通用户这种非专业人员来说,要他们帮忙进行数据库数据的变更就显得非常不方便,而且也不是特别的安全,这时候比较常见的就是写好sql语句放在某些批处理中,直接执行对应操作即可,以下几篇文章就主要对常见数据库的批处理语句进行说明,下面说的就是SQL Server批处理的实现,话不多说,直接上代码:

@ECHO OFF 

SET dbhost=主机名(例如:127.0.0.1)
SET dbuser=用户名(例如:sa)
SET dbpasswd=用户密码(例如:admin)
set dbName=数据库名称(例如:test)
SET sqlpath=%~dp0(此语句可以保证.bat同级目录下的.sql文件能被找到)
set sqlfile=update.sql(需要执行执行sql的文件)

::执行SQL脚本
osql -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i %sqlpath%%sqlfile%

ECHO 完成!
PAUSE

@ECHO Done! 

以上代码完整放在.bat文件中就能实现对数据库的具体操作,另附上osql常见参数:

通过 sqlcmd -? 查看相关参数:

 

用法: Sqlcmd            [-U 登录 ID]          [-P 密码]
  [-S 服务器]            [-H 主机名]          [-E 可信连接]
  [-N 加密连接][-C 信任服务器证书]
  [-d 使用数据库名称] [-l 登录超时值]     [-t 查询超时值]
  [-h 标题]           [-s 列分隔符]      [-w 屏幕宽度]
  [-a 数据包大小]        [-e 回显输入]        [-I 允许带引号的标识符]
  [-c 命令结束]            [-L[c] 列出服务器[清除输出]]
  [-q "命令行查询"]   [-Q "命令行查询" 并退出]
  [-m 错误级别]        [-V 严重级别]     [-W 删除尾随空格]
  [-u unicode 输出]    [-r[0|1] 发送到 stderr 的消息]
  [-i 输入文件]         [-o 输出文件]        [-z 新密码]
  [-f <代码页> | i:<代码页>[,o:<代码页>]] [-Z 新建密码并退出]
  [-k[1|2] 删除[替换]控制字符]
  [-y 可变长度类型显示宽度]
  [-Y 固定长度类型显示宽度]
  [-p[1] 打印统计信息[冒号格式]]
  [-R 使用客户端区域设置]
  [-b 出错时中止批处理]
  [-v 变量 = "值"...]  [-A 专用管理连接]
  [-X[1] 禁用命令、启动脚本、环境变量[并退出]]
  [-x 禁用变量替换]
  [-? 显示语法摘要]

 

此处使用的主要是

-S 服务器ip 

-d 数据库名称

-U 连接用户名

-P 用户的密码

-i 执行的sql文件

-o sql语句输出的结果文件

 

如果使用批处理执行Mysql的sql语句在下一篇中会写到

bat批处理执行sql语句__Mysql