zoukankan      html  css  js  c++  java
  • LinkServer--访问远程数据表三种方式

    在TSQL中访问远程数据库有三种方式:
    1.OPENROWSET
    2.OPENDATASOURCE
    3.LinkServer

    在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的.
    开启Ad Hoc Distributed Queries:

    exec sp_configure 'show advanced options',1
    reconfigure
    exec sp_configure 'Ad Hoc Distributed Queries',1
    reconfigure


    使用LinkServer:

    --============================================
    --添加LinkServer
    EXEC master.dbo.sp_addlinkedserver 
    @server = N'ServerIP,ServerPort', 
    @srvproduct=N'SQL Server'
    GO
    --============================================
    --添加LinkServer的登陆账户
    EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'ServerIP,ServerPort', 
    @locallogin = NULL , @useself = N'False', 
    @rmtuser = N'UserName', 
    @rmtpassword = N'UserPsw'
    GO
    --============================================
    --使用LinkServer访问表
    SELECT * FROM [ServerIP,ServerPort].[DB1].[dbo].[TB1]
    GO
    --===========================================
    --使用LinkServer来创建表或执行存储过程
    EXEC('
    USE DB1;
    CREATE TABLE TB1
    (
        ID INT
    )
    ') AT [ServerIP,ServerPort]
    GO
    --===========================================
    --删除LinkServer 
    EXEC master.dbo.sp_dropserver 
    @server=N'ServerIP,ServerPort', 
    @droplogins='droplogins'
    GO

     

     

    使用OPENROWSET

    SELECT T.*
    FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
         'SELECT * FROM DB1.dbo.TB1') AS T;

     

    使用OPENDATASOURCE

    SELECT *
    FROM OPENDATASOURCE('SQLNCLI',
        'Data Source=LondonPayroll;Integrated Security=SSPI')
        .DB1.dbo.TB1

     

     

  • 相关阅读:
    Mysql存储引擎概念特点介绍及不同业务场景选用依据
    python
    nginx使用keepalived实现高可用
    python-文件操作(1)
    浏览器缓存知识小结及应用
    cookie 和 session
    tcp三次握手
    TCP/IP系列——长连接与短连接的区别
    python
    python- 迭代器与生成器
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3518950.html
Copyright © 2011-2022 走看看