首页
登录 | 注册

通过MS SQL Server 链接服务器访问远程数据

在 MS SQL Server 中访问其他远程数据库的数据可以通过 OPENQUERY (Transact-SQL) 函数来实现。首先创建一个链接服务器,然后像普通表一样维护远程的数据。
 
ms sql server 链接服务器的创建方法:
EXEC sp_addlinkedserver
   'lkTest',
   '',
   'MSDASQL',
   NULL,
   NULL,
   'DRIVER={SQL Server};SERVER=192.168.0.224;UID=sa;PWD=sa;'
 
检查链接服务器的可用性:
select * from openquery(lkTest,'select * from pubs.dbo.jobs')
 
 
如果远程的ms sql server数据库无法访问,报错:
[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB provider returned message:
[Microsoft][ODBC SQL Server Driver][SQL Server]用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。]
检查网络、sa密码都无误后仍无法连接,可以尝试安装ms sql server 的sp3来解决。
 
OPENQUERY() 函数介绍
对给定的链接服务器执行指定的传递查询。该服务器是 OLE DB 数据源。OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。
 语法
OPENQUERY ( linked_server ,'query' )
 
 参数
linked_server
表示链接服务器名称的标识符。
'query'
在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。
 
 备注
OPENQUERY 不接受其参数的变量。
在 SQL Server 2000 和更高版本中,OPENQUERY 不能用于对链接服务器执行扩展存储过程。但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。例如:
EXEC SeattleSales.master.dbo.xp_msver
 
 权限
任何用户都可以执行 OPENQUERY。用于连接到远程服务器的权限是从为链接服务器定义的设置中获取的。
 
 示例
A. 执行 SELECT 传递查询
以下示例将使用“用于 Oracle 的 Microsoft 访问接口”针对 Oracle 数据库创建一个名为 OracleSvr 的链接服务器。然后,该示例针对此链接服务器使用 SELECT 传递查询。
 
注意:
本示例假定已经创建了一个名为 ORCLDB 的 Oracle 数据库别名。
EXEC sp_addlinkedserver 'OracleSvr',
   'Oracle 7.3',
   'MSDAORA',
   'ORCLDB'
GO
SELECT *
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
GO
 
B. 执行 UPDATE 传递查询 
UPDATE OPENQUERY (linked_server, 'SELECT title, content FROM msgs WHERE id=1')
SET title = 'newTitle', content = 'newContent';
 
C. 执行 INSERT 传递查询
INSERT OPENQUERY (linked_server, 'SELECT title, content FROM msgs')
VALUES ('title', 'content');
 
D. 执行 DELETE 传递查询
以下示例使用 DELETE 传递查询删除。
DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
 
参考
sp_linkedservers 检查当前链接服务器,直接执行即可看到结果
sp_addlinkedserver 配置链接服务器


 
企业管理器中管理链接服务器
500)this.width=500;" border=0>
 
 
500)this.width=500;" border=0>

相关文章

  • 目录 l 摘要l 一般安装程序的制作l 在安装程序中部署SQL Server数据库1. 通过调用osql来执行数据库脚本文件2. 通过把脚本文件作为资源文件载入3. 通过sp_attach_db来创建数据库l 总结 摘要一个项目完成之后,安 ...
  • 深入浅出SQL Server Replication第一篇:走近Replication(上)
    深入浅出SQL Server Replication第一篇:走近Replication(上) 对于很多的SQL Server DBA而言,Replication不是什么新鲜的事物了,也是大家常常说的"复制",很多的朋友已 ...
  • SQL Server横向扩展方案-可伸缩的共享数据库
    在上篇文章中,我们讲述了SQL Server横向扩展(或者称之为"水平扩展")方案中的两种:SODA和P2P技术,本篇文章将会继续的介绍余下的方案. Scalable Shared Database(SSD,可伸缩的共享 ...
  • SQL Server 2008 R2 Express简易安装记录:
                                              SQL Server 2008 R2 Express簡易安裝紀錄 最近因為專案需要而安裝了SQL Server 2008 R2 Express,以下是安裝記 ...
  • Oracle数据库 测试平台 - Database 11gR2/12cR2 --数据字典表级信息 SELECT USER,T.TABLE_NAME,TC.COMMENTS,DECODE(C.CONSTRAINT_NAME,NULL,'N', ...
  • SQL Server横向扩展方案-P2P
    在上一篇文章中,介绍了SODA的相关的内容,我们本篇接着没有完成的话题继续. Peer-to-Peer Transactional Replication 翻译为中文就是"点到点的事务复制",简称P2P.P2P的技术在S ...

2019 unjeep.com webmaster#unjeep.com
12 q. 0.015 s.
京ICP备10005923号