当前位置:首页 > 数据库技术 > 正文

批处理,将SQL Server的执行结果保存为txt,CSV文件

想做个定时报表输出,直接从数据库生成,有什么好的方法,网上各种的导成EXCEL方法,都太复杂了,MSSQL可以直接生成TXT,CSV,而且CSV也相当于是EXCEL,对于一个数据经常导来导去的家伙来说,CSV是再好不过了,来来说说实现的干货吧:

C:\Documents and Settings\Administrator>sqlcmd -?
Microsoft (R) SQL Server 命令行工具
版本 10.50.1600.1 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

用法: 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 禁用变量替换]
[-? 显示语法摘要]

方法:

---------------------

sqlcmd -S"127.0.0.1"  -U"sa" -P"sa" -d"run" -Q"SELECT * FROM [kbss].[d].[list]" -o d:\aaa.txt


或者

sqlcmd -S"127.0.0.1"  -U"sa" -P"sa" -d"run" -i"C:\Users\Administrator\Desktop\test.sql"  -o d:\a.txt


其中C:\Users\Administrator\Desktop\1.sql即存放SQL语句的文件,run是库名,d:\a.txt是结果存放文件。
在语句中加入-s,可以更改列分隔符字符,默认时为空格。
例:

sqlcmd -S"127.0.0.1"  -U"sa" -P"sa" -d"run" -Q"SELECT * FROM [kbss].[d].[list]" -s "," -o d:\aaa.txt


就可以把分隔符改成“,"

这这样子,这个最好用了。

标签:
上一篇: 下一篇:

暂无评论

发表评论

不理你。 不要啊! 吃饭。 吃惊。 吃西瓜。 飞吻! 恭喜! Hi 纠结! 膜拜! OK 抛媚眼。 泡泡糖。 抛钱。 忍! 生闷气! 调皮。 偷看。 委屈。 献花。 疑问? 抓狂!

小提示:Ctrl+Enter快速提交助您一臂之力~
加载中……