解析MSSQL跨資料庫查詢的實現方法
複製程式碼 程式碼如下:
--建立連結伺服器
exec sp_addlinkedserver '連結伺服器名稱', '', 'SQLOLEDB', '遠端伺服器名或ip地址'
exec sp_addlinkedsrvlogin '連結伺服器名稱', 'false' ,null, '需要連結伺服器使用者名稱', '密碼'
sp_addlinkedserver
[ @server= ] 'server'
[ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
引數(Parameters):
[ @server = ] 'server'
要建立的連結伺服器的名稱。server 的資料型別為 sysname,沒有預設值。
[ @srvproduct = ] 'product_name'
要新增為連結伺服器的 OLE DB 資料來源的產品名稱。product_name 的資料型別為 nvarchar(128),預設值為 NULL。如果為 SQL Server,則不必指定 provider_name、data_source、location、provider_string 和 catalog。
[ @provider = ] 'provider_name'
與此資料來源對應的 OLE DB 訪問介面的唯一程式設計識別符號 (PROGID)。對於當前計算機中安裝的指定 OLE DB 訪問介面,provider_name 必須唯一。provider_name 的資料型別為 nvarchar(128),預設值為 NULL;但如果忽略 provider_name,則使用 SQLNCLI。SQLNCLI 是 SQL 本機 OLE DB 訪問介面。OLE DB 訪問介面應以指定的 PROGID 在登錄檔中註冊。
[ @datasrc = ] 'data_source'
由 OLE DB 訪問介面解釋的資料來源的名稱。data_source 的資料型別為 nvarchar(4000)。data_source 作為 DBPROP_INIT_DATASOURCE 屬性傳遞以初始化 OLE DB 訪問介面。
[ @location = ] 'location'
由 OLE DB 訪問介面解釋的資料庫的位置。location 的資料型別為 nvarchar(4000),預設值為 NULL。location 作為 DBPROP_INIT_LOCATION 屬性傳遞以初始化 OLE DB 訪問介面。
[ @provstr = ] 'provider_string'
OLE DB 訪問介面特定的連線字串,它可標識唯一的資料來源。provider_string 的資料型別為 nvarchar(4000),預設值為 NULL。provstr 或傳遞給 IDataInitialize 或設定為 DBPROP_INIT_PROVIDERSTRING 屬性以初始化 OLE DB 訪問介面。
在針對 SQL 本機客戶端 OLE DB 訪問介面建立連結伺服器後,可將 SERVER 關鍵字用作 SERVER=servername/instancename 來指定例項,以指定特定的 SQL Server 例項。servername 是執行 SQL Server 的計算機名稱,instancename 是使用者將連線到的特定 SQL Server 例項的名稱。
[ @catalog = ] 'catalog'
與 OLE DB 訪問介面建立連線時所使用的目錄。catalog 的資料型別為 sysname,預設值為 NULL。catalog 作為 DBPROP_INIT_CATALOG 屬性傳遞以初始化 OLE DB 訪問介面。在針對 SQL Server 例項定義連結伺服器時,目錄指向連結伺服器對映到的預設資料庫。
返回程式碼值(returnValue):
(成功)或 1(失敗)
許可權:
要求具有 ALTER ANY LINKED SERVER 許可權。
---------------------------------------
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' [ , [ @useself = ] 'useself' ] [ , [ @locallogin = ] 'locallogin' ] [ , [ @rmtuser = ] 'rmtuser' ] [ , [ @rmtpassword = ] 'rmtpassword' ] 注意:不能從使用者定義的事務中執行 sp_addlinkedsrvlogin。 引數(Parameters):[ @rmtsrvname = ] 'rmtsrvname' 應用登入對映的連結伺服器的名稱。rmtsrvname 的資料型別為 sysname,沒有預設值。 [ @useself = ] 'useself' 確定用於連線遠端伺服器的登入名。useself 的資料型別為 varchar(8),預設值為 TRUE。 值為 true 時指定登入使用自己的憑據連線 rmtsrvname,忽略 rmtuser 和 rmtpassword 引數。 false 指定使用 rmtuser 和 rmtpassword 引數連線指定 locallogin 的 rmtsrvname。 如果 rmtuser 和 rmtpassword 也設定為 NULL,則不使用登入名或密碼來連線連結伺服器。 [ @locallogin = ] 'locallogin' 本地伺服器上的登入。locallogin 的資料型別為 sysname,預設值為 NULL。 NULL 指定此項應用於連線到 rmtsrvname 的所有本地登入。 如果不為 NULL,則 locallogin 可以是 SQL Server 登入或 Windows 登入。 對於 Windows 登入來說,必須以直接的方式或透過已被授權訪問的 Windows 組成員身份授予其訪問 SQL Server 的許可權。 [ @rmtuser = ] 'rmtuser' 當 useself 為 false 時,表示用於連線 rmtsrvname 的使用者名稱。 rmtuser 的資料型別為 sysname,預設值為 NULL。 [ @rmtpassword = ] 'rmtpassword' 與 rmtuser 關聯的密碼。rmtpassword 的資料型別為 sysname,預設值為 NULL。 返回程式碼值(returnValue): 0(成功)或 1(失敗) 許可權: 需要對伺服器具有 ALTER ANY LOGIN 許可權。
----------------------------------------------- -----------------------------------------------查詢示例 select * from 連結伺服器名.資料庫名.dbo.表名
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2804353/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 跨資料庫查詢SQLServer資料庫
- MSSQL遍歷資料庫根據列值查詢資料SQL資料庫
- efcore 跨表查詢,實現一個介面內查詢兩個不同資料庫裡各自的表資料資料庫
- Yii2實現跨mysql資料庫關聯查詢排序功能MySql資料庫排序
- Excel資料庫轉MySQL,實現查詢Excel資料庫MySql
- 使用cglib實現資料庫框架的級聯查詢CGLib資料庫框架
- 如何使用 Milvus 向量資料庫實現實時查詢資料庫
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- Android SQL資料庫查詢方法 query( )AndroidSQL資料庫
- django對資料庫查詢基本方法Django資料庫
- SQL server資料庫with as子句與遞迴查詢的實現SQLServer資料庫遞迴
- SQL Server實戰四:查詢資料庫的資料SQLServer資料庫
- 一條SQL完成跨資料庫例項Join查詢SQL資料庫
- mysql資料庫連表查詢的幾種方法MySql資料庫
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server
- 實現 MyBatis 流式查詢的方法MyBatis
- MSSQL資料庫超時的原因與解決方法SQL資料庫
- 資料庫高階查詢之子查詢資料庫
- MSSQL·最佳實踐·RDSSDK實現資料庫遷移上阿里雲RDSSQLServerSQL資料庫阿里Server
- Jemter查詢資料庫資料庫
- 求助:資料庫查詢資料庫
- ThinkPHP 資料庫查詢PHP資料庫
- 資料庫排序查詢資料庫排序
- 查詢資料庫大小資料庫
- 資料庫查詢慢的原因資料庫
- 查詢資料庫的資料量的大小資料庫
- 使用docker建立和執行跨平臺的容器化的mssql資料庫DockerSQL資料庫
- 資料庫基礎查詢--單表查詢資料庫
- 教你用一條SQL搞定跨資料庫查詢難題SQL資料庫
- Prometheus時序資料庫-資料的查詢Prometheus資料庫
- mysql資料庫查詢時用到的分頁方法有哪些MySql資料庫
- GaussDB跨雲容災:實現跨地域的資料庫高可用能力資料庫
- 資料庫查詢語句資料庫
- 資料庫查詢優化資料庫優化
- mssql sqlserver 使用sql指令碼 清空所有資料庫表資料的方法分享SQLServer指令碼資料庫
- Oracle資料庫的查詢變慢了Oracle資料庫
- MySQL資料庫基礎——多表查詢:子查詢MySql資料庫
- 20240719資料庫關聯查詢、條件查詢資料庫