跨数据库查询数据
今天要导数据,不幸的是要一台服务器导到另一台服务器上,于是乎就到上网查了一下怎么进行跨服务器数据库查询
方法一:
1
select * from OPENDATASOURCE(
2
'SQLOLEDB',
3
'Data Source=远程ip;User ID=sa;Password=密码'
4
).库名.dbo.表名
select * from OPENDATASOURCE( 2
'SQLOLEDB', 3
'Data Source=远程ip;User ID=sa;Password=密码' 4
).库名.dbo.表名 于是乎我写如下语句
1
insert into [news]
2
select top 100
3
*
4
from OPENDATASOURCE(
5
'SQLOLEDB',
6
'Data Source=222.204.24.119;User ID=超人;Password=无敌'
7
).xsglxt.dbo.subject_content as a
8
join
9
OPENDATASOURCE(
10
'SQLOLEDB',
11
'Data Source=222.204.24.119;User ID=超人;Password=无敌'
12
).xsglxt.dbo.Articles_SubjectManage as b
13
on a.id=b.subjectid
14
where partid=393
insert into [news] 2
select top 1003
*4
from OPENDATASOURCE(5
'SQLOLEDB',6
'Data Source=222.204.24.119;User ID=超人;Password=无敌'7
).xsglxt.dbo.subject_content as a 8
join 9
OPENDATASOURCE(10
'SQLOLEDB',11
'Data Source=222.204.24.119;User ID=超人;Password=无敌'12
).xsglxt.dbo.Articles_SubjectManage as b13
on a.id=b.subjectid14
where partid=393可惜报错了:
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。
最后找到解决方法:
启用Ad Hoc Distributed Queries:
1
exec sp_configure 'show advanced options',1
2
reconfigure
3
exec sp_configure 'Ad Hoc Distributed Queries',1
4
reconfigure
exec sp_configure 'show advanced options',12
reconfigure3
exec sp_configure 'Ad Hoc Distributed Queries',14
reconfigure上面语句在要导入数据的那台服务上运行。
浙公网安备 33010602011771号