SQL 本机客户端 OLE DB 访问接口
更新日期: 2005 年 12 月 5 日
Microsoft SQL Native Client OLE DB 访问接口提供了连接至 Microsoft SQL Server 2005 数据库的 OLE DB 接口。通过使用 SQL Native Client OLE DB 访问接口,SQL Server 分布式查询可以查询 SQL Server 中的数据。
创建用以访问 SQL Server 数据库的链接服务器
执行 sp_addlinkedserver 以创建链接服务器,指定将 SQL Server 远程实例作为 data_source 来运行的服务器的网络名称。对于 SQL Server 链接服务器,指定访问接口 SQLNCLI 是可选的。
例如,若要创建一个名为
LinkSQLSrvr
的链接服务器,以便对运行于网络名称为NetSQLSrvr
的服务器上的 SQL Server 实例进行操作,请执行下列操作之一:sp_addlinkedserver N'LinkSQLSrvr', ' ', N'SQLNCLI', N'NetSQLSrvr' sp_addlinkedserver N'LinkSQLSrvr', ' ', ' ', N'NetSQLSrvr'
另外,也可以根据其网络名称来定义 SQL Server 链接服务器,如下例所示:
sp_addlinkedserver N'NetSQLSrvr'
对运行 SQL Server 2000 实例的服务器执行分布式查询时,建议应用 SQL Server 2000 Service Pack 4 (SP4)。如果尚未应用 SP4,则应运行 SP4 附带的 Instcat.sql 脚本以升级目录存储过程。
对运行 SQL Server 7.0 或更早版本的服务器执行分布式查询时,必须升级早期版本的目录存储过程,以确保分布式查询可以正常运行。例如,如果服务器运行的是 SQL Server 7.0 实例,则该服务器上的目录存储过程必须升级至 SQL Server 2005 才能引用运行 SQL Server 2005 实例的服务器中的分布式查询。
更新远程 SQL Server 表时,本地服务器或客户端将不会收到此更新所激发的触发器产生的任何结果集或消息。
使用四部分名称时,需始终指定架构名称。没有在分布式查询中指定架构名称将禁止 OLE DB 查找表。引用本地表时,如果未指定所有者姓名,SQL Server 将使用默认值。即使链接服务器登录已映射到链接服务器上的 AdventureWorks
数据库中的 dbo
用户,下列 SELECT
语句仍将生成 7314 号错误:
sp_addlinkedserver @server = N'LinkServer',
@srvproduct = N' ',
@provider = N'SQLNCLI',
@datasrc = N'ServerNetName',
@catalog = N'AdventureWorks'
GO
SELECT *
FROM LinkServer.AdventureWorks.dbo.Vendor
以下示例定义了访问同一台计算机(其网络名称为 othersite
)的链接服务器和远程服务器。链接服务器定义使用与远程服务器的网络名称相同的名称;而远程服务器定义则使用其他名称。
/* Create a linked server definition to othersite. */
EXEC sp_addlinkedserver 'othersite', N'SQL Server'
/* Create a remote server definition using a
fictitious name. */
EXEC sp_addserver 'RPCothersite'
/* Set the fictitious name to the network name far away. */
EXEC sp_setnetname 'RPCothersite', 'othersite'
然后,就可以在分布式查询或者远程过程调用中引用这两个名称。
/* A distributed query referencing othersite. */
SELECT *
FROM othersite.Northwind.dbo.Employees
/* A remote procedure call to the same server. */
EXEC RPCothersite.master.dbo.sp_who
/* Distributed queries can be used to execute
stored procedures on the other server. */
EXEC othersite.master.dbo.sp_who
通过链接服务器执行的存储过程和通过远程服务器执行的存储过程之间的登录映射机制不同。有关详细信息,请参阅链接服务器。
分布式查询的事务注意事项
Microsoft SQL Native Client OLE DB 访问接口不支持嵌套事务。因此,对于涉及多个 Transact-SQL 语句的事务内部的数据修改操作和在分布式分区视图上进行的数据修改操作,XACT_ABORT 都应设置为 ON。
请参阅
概念
群集 SQL Server 中的链接服务器注意事项
多个 SQL Server 实例上的分布式查询
分布式查询
分布式查询和分布式事务
帮助和信息
更改历史记录
版本 | 历史记录 |
---|---|
2005 年 12 月 5 日 |
|