实际工作中经常需要访问别的系统或者数据库,这个时候需要实现跨数据库的数据访问。实现方式有多种,在以SQL Server 2008R2为例此介绍一种数据库视图的实现方式。
步骤一:启用Ad Hoc Distributed Queries
SQL Server阻止了对组件Ad Hoc Distributed Queries的STATEMENT OpenRowset/OpenDatasource的访问,因为此组件已作为此服务器安全配置的一部分而被关闭,
可以通过sp_configure启用Ad Hoc Distributed Queries。
语句如下:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
步骤二:创建视图映射到本地数据库
在本地数据库创建视图(例):
create view view_fundFlowRecord
as
select id,recordNum,reviewStatus,reviewer,occurrenceDate,version,fRemark,fLastOperatorCode,fLastOperateDatetime
from OPENDATASOURCE ('SQLOLEDB', 'Data Source=10.7.15.5; USER ID = sa ;Password=888888' ).firmDQCW.dbo.fundFlowRecord AS Rowset_1
基本语法:
select 字段名 from OPENDATASOURCE ('SQLOLEDB', 'Data Source=[IP地址];USER ID = [用户名] ;Password=[数据库密码]' ).[数据库名].dbo.[表名] AS Rowset_1
步骤三:关闭Ad Hoc Distributed Queries
出于数据安全性考虑,视图查询完毕后,关闭Ad Hoc Distributed Queries,语句如下:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
结束!