==== 百分求解:如何使用BCP从服务器导出Excel表数据到本地磁盘?====

fs_windy 2003-03-31 07:53:45
如何使用BCP从服务器导出Excel表数据到本地磁盘?

BCP导出时,默认为服务器路径,与本地调用无关。

现有一台没设置共享的计算机A,远程访问服务器数据,并想将数据库导出到Excel作分析,现该怎么办?
...全文
80 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fs_windy 2003-04-01
  • 打赏
  • 举报
回复
本地机器及服务器均“无”共享文件夹,该怎么办?
pengdali 2003-03-31
  • 打赏
  • 举报
回复
你应该用程序做,如delphi,bcb,vb,java......,应为如果你要导到客户端,服务器必须可以访问客户端下的文件,也就是你的客户端必须完全共享你的目录,且服务器可以写入,这样太麻烦了,如果做成应用,轻松就能解决
zqllyh 2003-03-31
  • 打赏
  • 举报
回复
BCP不能直接变成EXCEL文件,但可以将TXT文件保存成CSV的文件名,EXCEL可以直接打开
zqllyh 2003-03-31
  • 打赏
  • 举报
回复
抄一段给你
CREATE PROCEDURE dt_databasebackup @str_backuppath varchar(255),@str_databasename varchar(50),@str_tablename varchar(50) AS
declare @str_sqlexecute varchar(255)
if @str_tablename=‘‘or @str_tablename=null
begin
declare backuptable_cursor cursor for
select sysobjects.name from sysobjects where sysobjects.type=‘U‘
open backuptable_cursor
fetch next from backuptable_cursor into @str_tablename
while @@fetch_status=0
begin
select @str_sqlexecute=‘bcp ‘+@str_databasename+‘..‘+@str_tablename+‘ out ‘+ @str_backuppath+‘\‘+@str_tablename+‘.bac -c -U sa -P‘
exec master..xp_cmdshell @str_sqlexecute
fetch next from backuptable_cursor into @str_tablename
end
deallocate backuptable_cursor
end
else
begin
select @str_sqlexecute=‘bcp ‘+@str_databasename+‘..‘+@str_tablename+‘ out ‘+ @str_backuppath+‘\‘+@str_tablename+‘.bac -c -U sa -P‘
exec master..xp_cmdshell @str_sqlexecute
end
--数据库数据备份存储过程
go


CREATE PROCEDURE dt_databaserestore @str_restorepath varchar(255),@str_databasename varchar(50),@str_tablename varchar(50) AS
declare @str_sqlexecute varchar(255)
if @str_tablename=‘‘ or @str_tablename=null
begin
declare restoretable_cursor cursor for
select sysobjects.name from sysobjects where sysobjects.type=‘U‘
open restoretable_cursor
fetch next from restoretable_cursor into @str_tablename
while @@fetch_status=0
begin
select @str_sqlexecute=‘truncate table ‘+@str_tablename
execute(@str_sqlexecute)
select @str_sqlexecute=‘bcp ‘+@str_databasename+‘..‘+@str_tablename+‘ in ‘+ @str_restorepath+‘\‘+@str_tablename+‘.bac -c -U sa -P‘
exec master..xp_cmdshell @str_sqlexecute
fetch next from restoretable_cursor into @str_tablename
end
deallocate restoretable_cursor
end
else
begin
select @str_sqlexecute=‘truncate table ‘+@str_tablename
execute(@str_sqlexecute)
select @str_sqlexecute=‘bcp ‘+@str_databasename+‘..‘+@str_tablename+‘ in ‘+ @str_restorepath+‘\‘+@str_tablename+‘.bac -c -U sa -P‘
end
--数据库数据恢复存储过程
go

chpong 2003-03-31
  • 打赏
  • 举报
回复
我自己写的一个批处理文件:(Move.bat)
bcp Dtatbase.dbo.table out c:\table.xls -c -S128.8.1.1 -Usa -P
CrazyFor 2003-03-31
  • 打赏
  • 举报
回复
你是想写到远端的共享目录下吗?

TRY:

exec master..xp_cmdshell 'net use \\XX.XXX.XXX.XXX\ShareName "password" /User:UserName'
然后BCP路径:\\XX.XXX.XXX.XXX\ShareName\XXX.xls
gengwei80 2003-03-31
  • 打赏
  • 举报
回复
up

22,302

社区成员

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

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