SQL高級知識:dblink
共 2718字,需瀏覽 6分鐘
·
2024-05-22 16:00
點擊關注公眾號,SQL干貨及時獲取
DBLINK的定義
當我們要跨本地數(shù)據(jù)庫,訪問另外一個數(shù)據(jù)庫表中的數(shù)據(jù)時,本地數(shù)據(jù)庫中就必須要創(chuàng)建遠程數(shù)據(jù)庫的DBLINK,通過DBLINK本地數(shù)據(jù)庫可以像訪問本地數(shù)據(jù)庫一樣訪問遠程數(shù)據(jù)庫表中的數(shù)據(jù)。
創(chuàng)建DBLINK的語法
定義DBLINK類型
EXEC master.dbo.sp_addlinkedserver
@server = '遠程IP地址',
@srvproduct='DBLINK類型(默認SQL Server)'
定義DBLINK連接屬性
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname='遠程IP地址',
@useself='False',
@locallogin=NULL,
@rmtuser='遠程數(shù)據(jù)庫用戶名',
@rmtpassword='遠程數(shù)據(jù)庫密碼'
以上兩步要一起執(zhí)行才能生成DBLINK連接。
創(chuàng)建DBLINK連接示例
本地數(shù)據(jù)庫IP地址是192.169.0.35,已知局域網(wǎng)有一臺IP地址為192.169.0.39的數(shù)據(jù)庫服務器,其賬戶和密碼分別是sa和!QAZ1234,那么我們應該這樣創(chuàng)建DBLINK連接:
USE master
GO
EXEC master.dbo.sp_addlinkedserver
@server = '192.169.0.39',
@srvproduct='SQL Server'
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname='192.169.0.39',
@useself='False',
@locallogin=NULL,
@rmtuser='sa',
@rmtpassword='!QAZ1234'
Go
執(zhí)行完后我們會看到在SSMS的服務器對象下面有一個創(chuàng)建好的DBLINK連接,如下圖:
DBLINK的作用
前面的定義已經(jīng)說明,通過DBLINK本地數(shù)據(jù)庫可以像訪問本地數(shù)據(jù)庫一樣訪問遠程數(shù)據(jù)庫表中的數(shù)據(jù)。
DBLINK示例
以本地Customers表和遠程數(shù)據(jù)庫192.169.0.39里SQL_Road數(shù)據(jù)庫下的Orders表為例
我們想用本地的Customers表關聯(lián)遠程數(shù)據(jù)庫192.169.0.39里SQL_Road數(shù)據(jù)庫下的Orders表里的數(shù)據(jù),可以這樣寫SQL:
SELECT c.姓名,o.訂單日期 FROM Customers c
JOIN [192.169.0.38].SQL_Road.dbo.Orders o
ON c.客戶ID=o.客戶ID
結果如下:
這樣我們就將本來隔絕的兩個表通過DBLINK關聯(lián)上了。
刪除DBLINK
當我們不需要DBLINK的時候,可以通過以下方式進行刪除
EXEC master.dbo.sp_dropserver
@server='192.169.0.39',
@droplogins='droplogins'
這樣就將剛創(chuàng)建的DBLINK刪除了。
最后給大家分享我寫的SQL兩件套:《SQL基礎知識第二版》和《SQL高級知識第二版》的PDF電子版。里面有各個語法的解釋、大量的實例講解和批注等等,非常通俗易懂,方便大家跟著一起來實操。
有需要的讀者可以下載學習,在下面的公眾號「數(shù)據(jù)前線」(非本號)后臺回復關鍵字:SQL,就行
數(shù)據(jù)前線
——End——
后臺回復關鍵字:1024,獲取一份精心整理的技術干貨
后臺回復關鍵字:進群,帶你進入高手如云的交流群。
推薦閱讀
