分布式查询:数据存放地点不同,保存方式不同。
1连接服务器
1.1使用企业管理器创建
[服务器对象]>[连接服务器]>右键新建连接服务器
常规选项卡+连接服务器+SQL Server
安全性选项卡+使用此安全上下文进行连接+用户名+密码
1.2使用代码查看,创建,删除连接
exec sp_addlinkedserver
[@server=]'server',--服务器本地名称
[@srvproduct=]'SQL server'--数据源产品名称
[@provider=]'provider_name'--唯一程序标示符
[@datasrc=]'name'--服务器数据源名称
范例
本地服务器命名与SQL server实例名不同
exec sp_addlinkedserver
@server='name1',
@srvproduct='',
@provider='sqloledb',
@datasrc='name2'
查看连接exec sp_linkedservers
删除连接exec sp_dropserver 'name1'
分布式查询简单范例
sp_addlinkedserver 'ls',--创建连接
sp_addlinkedsrvlogin 'ls','false',null,'sa','12345'--创建登陆映射
select * from [服务器名].[数据库名].[所有者名].[表名]
使用OpenDataSource进行查询
范例select * from opendatasource(
'sqloledb',--要访问的数据源
/*连接服务器名称,登录名,密码*/
‘data soure=192.168.1.1;
user id=sa;password=123’
).[数据库名].[所有者名].[表名]
使用OpenQuery函数分布式查询
好处减少外部数据源与客户间的通信量可以像引用表一样引用OpenQuery
sp_addlinkedserver 'ls',--创建连接
sp_addlinkedsrvlogin 'ls','false',null,'sa','12345'--创建登陆映射
select * from OpenQuery
(
ls,
'select * from [服务器名].[数据库名].[所有者名].[表名]'
)
OpenRowSet函数,包含全部连接信息,一次性的
范例
select * from
OpenRowSet(
'ss',--Oledb提供程序的确认
‘ls';--连接服务器名
'sa';--登录名
'123',--密码
'select * from ls.[数据库名].[所有者名].[表名]'
)
分布式事务
set xact_abort on transction
begin distributed--显示启动分布式事务
对数据本地表操作
对远程数据表操作
commit transction--结束分布式事务
1连接服务器
1.1使用企业管理器创建
[服务器对象]>[连接服务器]>右键新建连接服务器
常规选项卡+连接服务器+SQL Server
安全性选项卡+使用此安全上下文进行连接+用户名+密码
1.2使用代码查看,创建,删除连接
exec sp_addlinkedserver
[@server=]'server',--服务器本地名称
[@srvproduct=]'SQL server'--数据源产品名称
[@provider=]'provider_name'--唯一程序标示符
[@datasrc=]'name'--服务器数据源名称
范例
本地服务器命名与SQL server实例名不同
exec sp_addlinkedserver
@server='name1',
@srvproduct='',
@provider='sqloledb',
@datasrc='name2'
查看连接exec sp_linkedservers
删除连接exec sp_dropserver 'name1'
分布式查询简单范例
sp_addlinkedserver 'ls',--创建连接
sp_addlinkedsrvlogin 'ls','false',null,'sa','12345'--创建登陆映射
select * from [服务器名].[数据库名].[所有者名].[表名]
使用OpenDataSource进行查询
范例select * from opendatasource(
'sqloledb',--要访问的数据源
/*连接服务器名称,登录名,密码*/
‘data soure=192.168.1.1;
user id=sa;password=123’
).[数据库名].[所有者名].[表名]
使用OpenQuery函数分布式查询
好处减少外部数据源与客户间的通信量可以像引用表一样引用OpenQuery
sp_addlinkedserver 'ls',--创建连接
sp_addlinkedsrvlogin 'ls','false',null,'sa','12345'--创建登陆映射
select * from OpenQuery
(
ls,
'select * from [服务器名].[数据库名].[所有者名].[表名]'
)
OpenRowSet函数,包含全部连接信息,一次性的
范例
select * from
OpenRowSet(
'ss',--Oledb提供程序的确认
‘ls';--连接服务器名
'sa';--登录名
'123',--密码
'select * from ls.[数据库名].[所有者名].[表名]'
)
分布式事务
set xact_abort on transction
begin distributed--显示启动分布式事务
对数据本地表操作
对远程数据表操作
commit transction--结束分布式事务