T-SQL筆記5_跨DB Server SQL存取_sp_addlinkedserver_sp_dropserver_跨DB存取opendatasource

 


通常會先下


EXEC sp_helpserver

SELECT * FROM  master.dbo.sysservers

這兩個功能都一樣

可以查看所有 linked server 資訊

只要是在此集合中的各個DB Server都是能相互進行跨存取的

若沒有則要透過

sp_addlinkedserver語法先建立連線

EXEC sp_addlinkedserver

@server='192.168.2.66',--被訪問的伺服器別名(習慣上直接使用目標伺服器IP,或取個別名如:JOY)

@srvproduct='',

@provider='SQLOLEDB',

@datasrc='192.168.2.66' --要訪問的伺服器


@server = 'server' ,

    -- 要建立的連結伺服器名稱。

  @srvproduct = 'product_name' ,

    -- 加入的 OLE DB 資料來源產品名稱。

    -- nvarchar(128),預設值是 NULL。

  @provider = 'provider_name' ,

    -- 唯一程式化識別碼 (PROGID)。

    -- nvarchar(128),預設值是 NULL。

  @datasrc = 'data_source' ,

    -- 資料來源名稱。

    -- nvarchar(4000),DBPROP_INIT_DATASOURCE 屬性。

  @location = 'location' ,

    -- 資料庫位置。

    -- nvarchar(4000),預設值是 NULL,DBPROP_INIT_LOCATION 屬性。

  @provstr = 'provider_string' ,

    -- 連接字串,用來識別唯一資料來源。

    -- nvarchar(4000),預設值是 NULL,DBPROP_INIT_PROVIDERSTRING 屬性。

  @catalog = 'catalog'

    -- 所用的目錄。

    -- 是 sysname,預設值是 NULL,DBPROP_INIT_CATALOG 屬性。


傳回碼值:0 (成功) 或 1 (失敗)


權限:需要伺服器的 ALTER ANY LINKED SERVER 權限。


* 資料來源產品名稱如果是 SQL Server,則不必指定 provider_name、data_source、location、provider_string 和 catalog。

* 連結伺服器資料紀錄於 master.dbo.sysservers 中。



而若是要移除連結

則是透過 sp_dropserver語法

sp_dropserver

  @server = 'server' ,

    -- 要移除的伺服器

  @droplogins = {'droplogins' | NULL}

    -- 如果指定了 droplogins,也必須移除 server 的相關遠端和連結伺服器登入

    -- char(10),預設值是 NULL。

傳回碼值:0 (成功) 或 1 (失敗)


權限:需要伺服器的 ALTER ANY LINKED SERVER 權限。


* 若要在移除伺服器時移除伺服器的所有遠端和連結伺服器登入,請使用 droplogins 引數。




select 或其他異動操作時要下完整

[OtherServerName].[OtherDB].[dbo].[OtherTable]


[DB Server IP].[DB名稱].[dbo].[Table名稱]



要達到跨DB存取時候
則可利用 opendatasource 


SELECT *
   FROM OPENDATASOURCE('SQLOLEDB',
                                                  'Data Source=IP,PORT;User ID=帳號;Password=密碼')
                                                 .[資料庫名稱].[dbo].[資料表名稱]




Ref:

https://tsuozoe.pixnet.net/blog/post/22417837


https://dotblogs.com.tw/puma/2009/02/05/7038


https://www.itread01.com/content/1546281935.html

http://sharedjustin.blogspot.com/2013/08/sql-serverdb-link.html

https://fannys23.pixnet.net/blog/post/25754408




留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header