SQL Server执行存储过程时如何将输出保存到文件?BCP命令未生效求助
BCP命令导出存储过程输出到文件的问题修复
核心问题排查
- 登录参数冲突:你同时使用了
-U/-P(SQL身份验证)和-T(Windows集成身份验证),这两组参数互斥,只能保留其中一组。 - 查询内容不符需求:当前命令是普通SELECT语句,若要导出存储过程的输出,需将查询替换为
EXEC 你的存储过程名格式。
修正后的命令示例
场景1:使用Windows集成身份验证
bcp "EXEC 你的存储过程名" queryout "D:\spoutput.csv" -S servername -c -T
场景2:使用SQL身份验证
bcp "EXEC 你的存储过程名" queryout "D:\spoutput.csv" -S servername -U username -P password -c
额外注意事项
- 确保执行BCP的账号拥有D盘写入权限,以及目标数据库、存储过程的读取/执行权限。
- 若存储过程带参数,需在
EXEC后补充参数,例如:EXEC 你的存储过程名 @Param1='测试值', @Param2=123。 - 如需指定CSV的字段分隔符,可添加
-t,参数(逗号分隔),换行符用-r\n,示例:
bcp "EXEC 你的存储过程名" queryout "D:\spoutput.csv" -S servername -T -c -t, -r\n
内容的提问来源于stack exchange,提问作者Iyaz Shaikh
相关产品推荐
相关产品推荐

