bat脚本执行带参数的sql指令(sql server)

代码如下:

@echo off
set /p datestr=请输入需要保留日志的天数:
osql -S"127.0.0.1" -U"sa" -P"Passw0rd" -Q"delete from table where columnDate < (SELECT convert(varchar, dateadd (DD,-%datestr%+1,getdate()), 112));" -e
exit 0

代码实现功能:
输入天数d,删除表table中d天前的数据。

备注:
这里由于需要传入参数给sql,所以只能通过-Q直接执行sql语句(oracle可以实现sqlplus user/pass@服务名 @C:\test.sql param);如果没有参数的话可以将需要执行的sql语句单独放到一个sql文件中,然后通过-i执行sql文件中的语句

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

你可能感兴趣的:(知识点)