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