使用bcp将远程服务器数据库数据导出导入excel

时间:2023-02-16 00:25:13
EXEC master..xp_cmdshell 'bcp "SELECT * FROM [gw].[dbo].[TB_LIS_Report] where bgdh =1 " queryout f:\authors.xls -c -S192.168.20.48 -Usa -Psqlserver' 





报错:SQLState = S1000, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]无法打开 BCP 主数据文件
NULL
语句正确的,在本地机上的数据库可以正确运行,在服务器上就不行了!
在线等待 急用啊!! 

34 个解决方案

#1


EXEC master..xp_cmdshell 'bcp "SELECT * FROM [gw].[dbo].[TB_LIS_Report] where bgdh =1 " queryout "f:\authors.xls" -c -S192.168.20.48 -Usa -Psqlserver' 试试这个,注意整句不要换行,另外F盘是否有足够权限访问也要检查

#2


参考这里17楼的写法,我刚才刚测过没问题 http://bbs.csdn.net/topics/390586570?page=1#post-395526678

#3


2楼大哥,我F盘权限我设置够着的 还有看你给我发的网址17楼的改还是错误啊...我用自己电脑在本地的sqlserver中建的 使用bcp将远程服务器数据库数据导出导入excel数据库可以代码放到公司电脑上就不行了!!!代码我也没换行啊!

#4


2楼大哥,我F盘权限我设置够着的 还有看你给我发的网址17楼的改还是错误啊...我用自己电脑在本地的sqlserver中建的数据库可以代码放到公司电脑上就不行了!!!代码我也没换行啊!  使用bcp将远程服务器数据库数据导出导入excel

#5


EXEC master..xp_cmdshell 'bcp "SELECT * FROM [gw].[dbo].[TB_LIS_Report] where bgdh =1 " queryout f:\authors.xls -c -S192.168.20.48 -Usa -Psqlserver'
-S代表服务器名,估计你要用实例名而不是IP

#6


另外看看服务器开启了这些没有:
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO

#7


2楼大哥我登陆sqlserver都是用的这个 使用bcp将远程服务器数据库数据导出导入excel

#8


我知道,但是-S参数是加服务器名,格式: -S "[服务器名]",你试试用(local)来代替IP

#9


大哥  我试了 local 还是不行 还是报同样的错误!

#10


6楼的代码执行过没?

#11


是(local)不是local哦,要带上括号的

#13


带括号了  如果不带会有异常!

#14


那还是试试用服务器名,这个和你登录没啥关系

#15


大哥,不行啊! 你给我发的链接我看过了权限也设置了什么都搞了就还是报那样的错误

#16


对了,一直没留意你的题目,你是想从那个远程服务器导如到你本地的F盘?还是导出到服务器的F盘?

#17


大哥,我是从服务器上的数据库数据导出到本地机上,我在自己电脑上数据库是本地的,导出到 的excel文档也是本地的,所以能成功,放到公司电脑上数据库是服务器上的要导出到本地机上就不行了,我感觉也是这权限问题但是我已经把F盘设置足够大的权限了还是不行!问题纠结在这儿,不知道大哥有什么好办法没!

#18


晕,我印象里面BCP不能直接导到远程机器,只能先导到本地然后用操作系统级别的命令把文件移动到远程机器。

#19


也就是说我没办法直接使用bcp从远程服务器上将数据导出到本地机的excel里了?

#20


引用 19 楼 u011015372 的回复:
也就是说我没办法直接使用bcp从远程服务器上将数据导出到本地机的excel里了?
最起码我没见过这样的用法。

#21


你可以试一下把文件导到服务器本地试试,如果没问题,证明就不能远程导

#22


谢谢大哥帮忙,如果不用bcp的话有没有别的办法使用sql语句将数据导入导出到一个文档里?

#23


除了BCP,还可以用sqlserver自带的【导入导出向导】。导入到sqlserver还有bulk insert命令,但是导出成文件好像就只有前面两种了

#24


我也想用自带的但是老大要求要使用sql语句将数据导入导出没办法,我就在网上查到bcp了!

#25


按照我所知的,只能用BCP导出成文件到服务器本地,然后通过OS命令或者FTP等工具把文件传到别的服务器。或者导到一个共享文件夹,然后你本机通过共享文件夹去获取文件。

#26


哦谢了啊 !我再想想看有别的办法没!

#27


如果你本地和服务器是可以互访,而且不一定要导出文件的话,可以使用连接服务器,把两台sqlserver连起来,然后进行操作

#28


老大要求的是要导出到一个文件的,我是直接下了个sqlserver客户端登陆登陆的,本地机没有sqlserver!

#29


使用bcp将远程服务器数据库数据导出导入excel那我的方案:bcp导出文件到本地,然后用os命令或者ftp传输到目标机器上。另外,有时候不是你老大要求什么就什么,你也可以先了解目的,然后去找方法,说不定有更好的方法。

#30


恩,刚入职的新员工,没办法 菜鸟选手啊我!

#31


还有啊!大哥bcp导出数据我写的代码是不是就是导出到服务器本地了?

#32


对,你那个应该是导到服务器本地的F盘去了(如果成功的话)

#33


下次回复请引用,不然帖子太多发现不了

#34


引用 32 楼 DBA_Huangzj 的回复:
对,你那个应该是导到服务器本地的F盘去了(如果成功的话)
我没有成功也就是说我没有读写服务器本地机F盘的权利,谢谢大哥了困扰了三天总算是知道问题所在了!我结贴了啊!以后小弟遇到困难还望大哥多多帮助啊!

#1


EXEC master..xp_cmdshell 'bcp "SELECT * FROM [gw].[dbo].[TB_LIS_Report] where bgdh =1 " queryout "f:\authors.xls" -c -S192.168.20.48 -Usa -Psqlserver' 试试这个,注意整句不要换行,另外F盘是否有足够权限访问也要检查

#2


参考这里17楼的写法,我刚才刚测过没问题 http://bbs.csdn.net/topics/390586570?page=1#post-395526678

#3


2楼大哥,我F盘权限我设置够着的 还有看你给我发的网址17楼的改还是错误啊...我用自己电脑在本地的sqlserver中建的 使用bcp将远程服务器数据库数据导出导入excel数据库可以代码放到公司电脑上就不行了!!!代码我也没换行啊!

#4


2楼大哥,我F盘权限我设置够着的 还有看你给我发的网址17楼的改还是错误啊...我用自己电脑在本地的sqlserver中建的数据库可以代码放到公司电脑上就不行了!!!代码我也没换行啊!  使用bcp将远程服务器数据库数据导出导入excel

#5


EXEC master..xp_cmdshell 'bcp "SELECT * FROM [gw].[dbo].[TB_LIS_Report] where bgdh =1 " queryout f:\authors.xls -c -S192.168.20.48 -Usa -Psqlserver'
-S代表服务器名,估计你要用实例名而不是IP

#6


另外看看服务器开启了这些没有:
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO

#7


2楼大哥我登陆sqlserver都是用的这个 使用bcp将远程服务器数据库数据导出导入excel

#8


我知道,但是-S参数是加服务器名,格式: -S "[服务器名]",你试试用(local)来代替IP

#9


大哥  我试了 local 还是不行 还是报同样的错误!

#10


6楼的代码执行过没?

#11


是(local)不是local哦,要带上括号的

#12


#13


带括号了  如果不带会有异常!

#14


那还是试试用服务器名,这个和你登录没啥关系

#15


大哥,不行啊! 你给我发的链接我看过了权限也设置了什么都搞了就还是报那样的错误

#16


对了,一直没留意你的题目,你是想从那个远程服务器导如到你本地的F盘?还是导出到服务器的F盘?

#17


大哥,我是从服务器上的数据库数据导出到本地机上,我在自己电脑上数据库是本地的,导出到 的excel文档也是本地的,所以能成功,放到公司电脑上数据库是服务器上的要导出到本地机上就不行了,我感觉也是这权限问题但是我已经把F盘设置足够大的权限了还是不行!问题纠结在这儿,不知道大哥有什么好办法没!

#18


晕,我印象里面BCP不能直接导到远程机器,只能先导到本地然后用操作系统级别的命令把文件移动到远程机器。

#19


也就是说我没办法直接使用bcp从远程服务器上将数据导出到本地机的excel里了?

#20


引用 19 楼 u011015372 的回复:
也就是说我没办法直接使用bcp从远程服务器上将数据导出到本地机的excel里了?
最起码我没见过这样的用法。

#21


你可以试一下把文件导到服务器本地试试,如果没问题,证明就不能远程导

#22


谢谢大哥帮忙,如果不用bcp的话有没有别的办法使用sql语句将数据导入导出到一个文档里?

#23


除了BCP,还可以用sqlserver自带的【导入导出向导】。导入到sqlserver还有bulk insert命令,但是导出成文件好像就只有前面两种了

#24


我也想用自带的但是老大要求要使用sql语句将数据导入导出没办法,我就在网上查到bcp了!

#25


按照我所知的,只能用BCP导出成文件到服务器本地,然后通过OS命令或者FTP等工具把文件传到别的服务器。或者导到一个共享文件夹,然后你本机通过共享文件夹去获取文件。

#26


哦谢了啊 !我再想想看有别的办法没!

#27


如果你本地和服务器是可以互访,而且不一定要导出文件的话,可以使用连接服务器,把两台sqlserver连起来,然后进行操作

#28


老大要求的是要导出到一个文件的,我是直接下了个sqlserver客户端登陆登陆的,本地机没有sqlserver!

#29


使用bcp将远程服务器数据库数据导出导入excel那我的方案:bcp导出文件到本地,然后用os命令或者ftp传输到目标机器上。另外,有时候不是你老大要求什么就什么,你也可以先了解目的,然后去找方法,说不定有更好的方法。

#30


恩,刚入职的新员工,没办法 菜鸟选手啊我!

#31


还有啊!大哥bcp导出数据我写的代码是不是就是导出到服务器本地了?

#32


对,你那个应该是导到服务器本地的F盘去了(如果成功的话)

#33


下次回复请引用,不然帖子太多发现不了

#34


引用 32 楼 DBA_Huangzj 的回复:
对,你那个应该是导到服务器本地的F盘去了(如果成功的话)
我没有成功也就是说我没有读写服务器本地机F盘的权利,谢谢大哥了困扰了三天总算是知道问题所在了!我结贴了啊!以后小弟遇到困难还望大哥多多帮助啊!