如何通过控制台将ODBC/DSN数据库导出为CSV文件?
解决BCP命令登录失败(18456错误)的方案
排查及解决步骤
检查远程SQL实例的身份验证模式
远程pc-integral\integral实例可能仅启用了Windows身份验证,未开启SQL身份验证。操作步骤:- 用SSMS连接到该远程实例
- 右键实例→属性→安全性
- 勾选“SQL Server和Windows身份验证模式”,重启SQL服务生效
确认账户权限
确保admin账户在Auto02as数据库拥有读取权限,执行以下SQL验证:USE Auto02as; EXEC sp_helprolemember 'db_datareader';如果查询结果中没有
admin,执行授权语句:USE Auto02as; ALTER ROLE db_datareader ADD MEMBER admin;修正BCP的服务器参数
你使用的-S pc-integral\integral是本地链接服务器名称,BCP无法识别这类别名,需直接填写远程实例的实际网络地址(比如远程IP\integral或远程机器名\integral)。修正后的命令示例:bcp "SELECT * FROM Auto02as.dbo.mytable" queryout mytable.csv -S 192.168.1.100\integral -U admin -P admin -c -t, -r\n额外参数说明:
-c采用纯文本格式导出,-t,指定逗号作为字段分隔符,-r\n设置换行符,避免CSV格式混乱。尝试使用ODBC驱动执行
若旧版Native Client存在兼容性问题,可换用匹配版本的ODBC驱动(比如ODBC Driver 17 for SQL Server),也可直接使用你已配置好的DSN:bcp "SELECT * FROM mytable" queryout mytable.csv -S 你的DSN名称 -U admin -P admin -c -t,检查网络连通性
确认远程SQL实例的端口(默认1433,命名实例可能为动态端口)已在防火墙中开放,可通过telnet 远程IP 端口号测试连通性。
内容的提问来源于stack exchange,提问作者Alberto
相关产品推荐
相关产品推荐

