Sql Server分布式事务

分布式查询:数据存放地点不同,保存方式不同。
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--结束分布式事务

你可能感兴趣的:(sql,server,服务器,数据库,server,null,user)