bcp如何导出导入远程服务器数据到本地机的一个文件里

时间:2023-02-16 07:44:31
最近在研究 使用sql语句将远程数据库数据根据筛选条件导出到本地机的一个文件里,上网找到了BCP 但是使用BCP本地机上可以连接到 服务器就出现问题了,貌似使用bcp导服务器上的数据是将数据到出到服务器上了没导出到本地机,求高手们指教如何使用bcp将服务器上的数据导出到本地机呢?或者是有什么方法不使用bcp只通过sql语句将服务器数据导出到本地机!!急需  求高手 啊  !!服务器是 sqlserver 2008 的

6 个解决方案

#1


exec sp_addlinkedserver'DB32','  ','SQLOLEDB','192.168.3.x\SQLEXPRESS2008R2'
exec sp_addlinkedsrvlogin 'DB32','false',null,'sa','xxxxxxx'

--查询
select * from  链接名称.数据库名.dbo.表名

--不用后删除
exec sp_dropserver'数据库名','droplogins'



--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset

--查询示例
select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

--生成本地表
select * into 表 from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

--把本地表导入远程表
insert openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)
select * from本地表

#2


大哥我是将远程数据库数据导进本地机的一个文件里,列入excel  或 txt  你给我发的是什么啊!

#3


其实,上面是远程链接服务器,能够查询远程机器以后,可以把数据先导入本地数据库,再从本地导出到文件。
最主要是能够远程访问。

#4


下面的方法可以直接导出到.txt文件

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

EXEC sp_configure 'xp_cmdshell', 1
GO

EXEC master..xp_cmdshell 'bcp "SELECT top 100 * FROM 数据库名.dbo.表名" queryout "d:\1.txt" -c -t \t -S"localhost\sqlexpress" -U"sa" -P"12345" '

#5


引用 4 楼 hdhai9451 的回复:
下面的方法可以直接导出到.txt文件

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

EXEC sp_configure 'xp_cmdshell', 1
GO

EXEC master..xp_cmdshell 'bcp "SELECT top 100 * FROM 数据库名.dbo.表名" queryout "d:\1.txt" -c -t \t -S"localhost\sqlexpress" -U"sa" -P"12345" '
大哥首先感谢您 给我解惑  但是我本地没数据库,还有使用BCP 是将远程服务器的数据到出到远程服务器本地了吧?没办法直接导出到本地的!

#6


C:\>bcp XXX out \\XXX\OOO.dat -T -c -S XXX

#1


exec sp_addlinkedserver'DB32','  ','SQLOLEDB','192.168.3.x\SQLEXPRESS2008R2'
exec sp_addlinkedsrvlogin 'DB32','false',null,'sa','xxxxxxx'

--查询
select * from  链接名称.数据库名.dbo.表名

--不用后删除
exec sp_dropserver'数据库名','droplogins'



--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset

--查询示例
select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

--生成本地表
select * into 表 from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

--把本地表导入远程表
insert openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)
select * from本地表

#2


大哥我是将远程数据库数据导进本地机的一个文件里,列入excel  或 txt  你给我发的是什么啊!

#3


其实,上面是远程链接服务器,能够查询远程机器以后,可以把数据先导入本地数据库,再从本地导出到文件。
最主要是能够远程访问。

#4


下面的方法可以直接导出到.txt文件

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

EXEC sp_configure 'xp_cmdshell', 1
GO

EXEC master..xp_cmdshell 'bcp "SELECT top 100 * FROM 数据库名.dbo.表名" queryout "d:\1.txt" -c -t \t -S"localhost\sqlexpress" -U"sa" -P"12345" '

#5


引用 4 楼 hdhai9451 的回复:
下面的方法可以直接导出到.txt文件

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

EXEC sp_configure 'xp_cmdshell', 1
GO

EXEC master..xp_cmdshell 'bcp "SELECT top 100 * FROM 数据库名.dbo.表名" queryout "d:\1.txt" -c -t \t -S"localhost\sqlexpress" -U"sa" -P"12345" '
大哥首先感谢您 给我解惑  但是我本地没数据库,还有使用BCP 是将远程服务器的数据到出到远程服务器本地了吧?没办法直接导出到本地的!

#6


C:\>bcp XXX out \\XXX\OOO.dat -T -c -S XXX