今天要导数据,不幸的是要一台服务器导到另一台服务器上,于是乎就到上网查了一下怎么进行跨服务器数据库查询
方法一:
1
select
*
from OPENDATASOURCE(
2 ' SQLOLEDB ' ,
3 ' Data Source=远程ip;User ID=sa;Password=密码 '
4 ).库名.dbo.表名
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
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
可惜报错了:
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
2 reconfigure
3 exec sp_configure ' Ad Hoc Distributed Queries ' , 1
4 reconfigure
上面语句在要导入数据的那台服务上运行。