分布式查询
发表于分布式查询从多异类数据源中访问数据。这些数据源可以存储在同一台计算机或不同的计算机上。Microsoft SQL Server 通过使用 OLE DB 来支持分布式查询。
SQL Server 用户可以使用分布式查询访问以下内容:
- 存储在多个 SQL Server 实例中的分布式数据。
- 存储在各种可以使用 OLE DB 访问接口访问的关系和非关系数据源中的异类数据。
OLE DB 访问接口将在称为行集的表格格式对象中公开数据。SQL Server 允许在 Transact-SQL 语句中像引用 SQL Server 表一样引用 OLE DB 访问接口中的行集。
外部数据源中的表和视图可以在 SELECT、INSERT、UPDATE 和 DELETE Transact-SQL 语句中直接引用。因为分布式查询使用 OLE DB 作为基本接口,因此它们不仅可以访问带有 SQL 查询处理器的传统 DBMS 系统,也可以访问复杂的、具有不同功能的数据源所管理的数据。只要拥有数据的软件通过 OLE DB 访问接口在表格格式行集中公开其数据,就可在分布式查询中使用此数据。
注意: 在 SQL Server 中使用分布式查询与通过 ODBC 使用链接表功能相似。此功能先前受 Microsoft Access 支持,现在已将 OLE DB 作为外部数据的接口构建到 SQL Server 中。
下图显示了 SQL Server 实例的客户端计算机与 OLE DB 访问接口之间的连接。
有关分布式查询的重要主题
下表列出的主题提供了有助于理解和使用分布式查询来访问数据的信息,这些数据或者是在单独的 SQL Server 实例中或者在除 SQL Server 之外的其他数据源中。
有关信息 | 请参阅 |
---|---|
配置 OLE DB 访问接口和链接服务器 | 配置链接服务器为分布式查询配置 OLE DB 访问接口 |
分布式事务中的分布式查询 | 分布式查询和分布式事务 |
特定的 OLE DB 访问接口 | 用 SQL Server 测试过的 OLE DB 访问接口 |
OLE DB 访问接口的语言支持 | OLE DB 访问接口的 SQL 方言要求 |
链接服务器 | 访问外部数据 |
ODBC 和分布式查询 | 支持分布式查询的架构函数 |
性能问题 | 优化分布式查询 |
OLE DB 访问接口开发人员参考 | 用于分布式查询的 OLE DB 访问接口参考 |
统计要求 | OLE DB 访问接口的分布统计要求 |
分布式查询、链接服务器和允许的 Transact-SQL 语句的规则和限制。 | 分布式查询的准则系统存储过程 |
例子:
商场使用佳为软件,使用的是MSSQL数据库,需要在两个分店之间传数据.
首先就是建立服务器之间的链接.
使用以下命令添加(具体命令参数,请查看对应链接的详细介绍.
sp_addlinkedserver>>sp_addlinkedserver 'srv01','','SQLOLEDB','192.168.0.1','pos'
sp_addlinkedsrvlogin>>设置连接参数密码
sp_addlinkedsrvlogin 'srv01','false',NULL,'sa','password'
创建好了就可以直接使用了.
格式
server_name.[database_name].[schema_name].object_name
具体点击这里查看Transact-SQL 语法约定
使用的例子:
查询员工用户信息表
select * from srv01.pos.dbo.jygtab</font>
或
select * from openquery('srv01','select * from jygtab')
当然同样可以加条件查询,或者更新都是可以的.
几个例子:
查询1号员工的资料:
select * from srv01.pos.dbo.jygtab where yx#=1
修改资料:
update srv01.pos.dbo.jygtab set xm='chenall' where yx#=1
联合查询:
select yx#,xm,lqm from jygtab,srv01.pos.dbo.jlqtab where ysn=lb and lb=2
把srv01服务器pos数据库的jygtab表内容插入到当前服务器:
insert into jygtab select * from srv01.pos.dbo.jygtab
也可以连接到一个文本文件,EXCEL,ACCESS,等其它支持的类型.
嘿,最近刚好需要用到这些东西,所以查了一下资料写在这里备忘.