头疼,SQL Server只能把结果导出为txt格式或csv格式。
可我要导成Excel表啊..
干脆,先导成txt,然后再想办法把txt导入Excel吧。
方法:
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
即把分隔符改为逗号
请看帮助:
详见https://msdn.microsoft.com/zh-cn/library/ms162773.aspx
osql也可以,但输出文件格式不太规范
osql是SQL Server2005/2008后才有的命令,SQL Server2000请用isql
详见帮助
另外,在CMD中,也可直接输入sqlcmd -E 进入脚本编辑模式,输入SQL语句,之后输入go回车执行,quit是退出。
也就是说,也可以
sqlcmd -E -Q"SELECT * FROM [kbss].[d].[list]" -o d:\aaa.txt
或
sqlcmd -E -i"C:\Users\Administrator\Desktop\test.sql" -o d:\a.txt