如何使用BCP导出数据文件

Liyingyue_FFS 2008-11-10 10:18:01
exec master..xp_cmdshell 'bcp WapStatReport.dbo.CompanyInfo out c:\reporttmp\CompanyInfo.txt -T -c -Usa -P'

/*
output
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CTLIB Message: - L5/O3/S5/N4/5/0:
ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failed
Establishing connection failed.
NULL

(4 行受影响)
*/


在CMD里直接执行BCP和在SQLSERVER里面执行上述代码都是这个错误,在cmd里进入到sqlserver的bcp所在的目录后执行BCP命令正常,问题可能和我装了N种数据库而且sqlserver没有装在C盘有关,现在想写一个通用的SQL脚本,通过脚本,不管SQLSERVER是2000还是2005,不管装在哪个盘都可以把数据成功导出,求一个样例
...全文
110 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Liyingyue_FFS 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 liangCK 的回复:]
我的电脑也装了2000和2005的..我在PATH中把指向2000的BIN的路径删…
[/Quote]

多谢了,还是写BAT脚本吧,不是2000和2005,是sybase和2005,可能还要用sybase
liangCK 2008-11-10
  • 打赏
  • 举报
回复
-c -t|
liangCK 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 Liyingyue_FFS 的回复:]
引用 6 楼 liangCK 的回复:
在PATH上加个;E:\Program Files\Microsoft SQL Server\90\Tools\Binn
再CMD->BCP试试.


PATH 已经存在这一项,然后我把它又放到了最前面,但是还是出现那个错误,装的数据库比较多,PATH里面有BCP命令的路径不只一个……,在SQL脚本里面可以控制吗?

实在不行就只能写BAT脚本了
[/Quote]

我的电脑也装了2000和2005的..我在PATH中把指向2000的BIN的路径删了..只留了2005的..
Liyingyue_FFS 2008-11-10
  • 打赏
  • 举报
回复
另外请问,想要把默认的分割符/t 换成| 怎么弄? 在-c 后面加 -t '|' 语法错误
Liyingyue_FFS 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 liangCK 的回复:]
在PATH上加个;E:\Program Files\Microsoft SQL Server\90\Tools\Binn
再CMD->BCP试试.
[/Quote]

PATH 已经存在这一项,然后我把它又放到了最前面,但是还是出现那个错误,装的数据库比较多,PATH里面有BCP命令的路径不只一个……,在SQL脚本里面可以控制吗?

实在不行就只能写BAT脚本了
underlemontree 2008-11-10
  • 打赏
  • 举报
回复
学习中
fancydong 2008-11-10
  • 打赏
  • 举报
回复
-U -P 表示使用 sql server 身份验证
liangCK 2008-11-10
  • 打赏
  • 举报
回复
在PATH上加个;E:\Program Files\Microsoft SQL Server\90\Tools\Binn
再CMD->BCP试试.
水族杰纶 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zjcxc 的回复:]
-T 表示使用 windows 身份验证
-U -P 表示使用 sql server 身份验证

你只能使用其中的一个, 不能同时指定这两个
[/Quote]
學習~~
liangCK 2008-11-10
  • 打赏
  • 举报
回复
设置系统的环境变量
我的电脑->右击->属性->高级->环境变量->PATH->
Liyingyue_FFS 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zjcxc 的回复:]
-T 表示使用 windows 身份验证
-U -P 表示使用 sql server 身份验证

你只能使用其中的一个, 不能同时指定这两个
[/Quote]

不是这个问题,使用-U -P 的时候,仍然出现那个错误
问题可能和我装了N种数据库而且sqlserver没有装在C盘有关
比如,我进入CMD后直接执行 bcp WapStatReport.dbo.CompanyInfo out c:\reporttmp\CompanyInfo.txt -c -Usa -P ,就会出现上面的错误
然后我在CMD里进入这个目录 E:\Program Files\Microsoft SQL Server\90\Tools\Binn
再执行BCP命令,就成功了
zjcxc 2008-11-10
  • 打赏
  • 举报
回复
-- 故删除其中一个, 例如这样应该就好了
exec master..xp_cmdshell 'bcp WapStatReport.dbo.CompanyInfo out c:\reporttmp\CompanyInfo.txt -T -c'
zjcxc 2008-11-10
  • 打赏
  • 举报
回复
-T 表示使用 windows 身份验证
-U -P 表示使用 sql server 身份验证

你只能使用其中的一个, 不能同时指定这两个

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧