您的位置:首页 > 数据库

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

2017-06-22 15:01 288 查看
代码如下:

@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] 禁用命令,[退出的同时显示警告]]

[-? 显示语法摘要]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息