當前位置:源碼庫-建站教程-數據庫教程-MSSQL教程-SQL Server實現跨庫跨服務器訪問的方法

SQL Server實現跨庫跨服務器訪問的方法

時間:2019-09-17來源/作者:shuai7boy 編輯:源碼庫 文章熱度:0

前言

我們經常會遇到一個數據庫要訪問另一個數據庫,或者一台服務器要訪問另一台服務器裏麵的數據庫。 那麽這個如何實現的呢? 相信看完這篇文章你就懂了!

同一台服務器跨庫訪問實現

1. 首先創建兩個數據庫CrossLibraryTable1,CrossLibraryTable2

--創建CrossLibraryTable1腳本:

use master --打開master數據庫,一般的創建語句都在master中執行.
go
if exists (select * from sysdatabases where name='CrossLibraryTable1')
 drop database CrossLibraryTable1 /*檢查有沒有這個數據庫,如果有就刪除它。*/
go
create database CrossLibraryTable1
on primary
(
name='CrossLibraryTable1_data', ------------ 養成好習慣,數據文件加_data
filename='F:\代碼存放\數據庫\CrossLibraryTable1_data.mdf', ------------ 一定要是.mdf的文件,代表主數據文件
size=5mb, --默認數據庫大小
maxsize=100mb, --最大容量
filegrowth=1mb --增長量
)
log on
(
name='CrossLibraryTable1_log', ------------ 養成好習慣,日誌文件加_log
filename='F:\代碼存放\數據庫\CrossLibraryTable1_log.ldf', ------------ 一定要是.ldf的文件,代表日誌文件
size=1mb, --默認數據庫大小
filegrowth=10% --增長量
)

--創建CrossLibraryTable2腳本:

use master --打開master數據庫,一般的創建語句都在master中執行.
go
if exists (select * from sysdatabases where name='CrossLibraryTable2')
 drop database CrossLibraryTable2 /*檢查有沒有這個數據庫,如果有就刪除它。*/
go
create database CrossLibraryTable2
on primary
(
name='CrossLibraryTable2_data', ------------ 養成好習慣,數據文件加_data
filename='F:\代碼存放\數據庫\CrossLibraryTable2_data.mdf', ------------ 一定要是.mdf的文件,代表主數據文件
size=5mb, --默認數據庫大小
maxsize=100mb, --最大容量
filegrowth=1mb --增長量
)
log on
(
name='CrossLibraryTable2_log', ------------ 養成好習慣,日誌文件加_log
filename='F:\代碼存放\數據庫\CrossLibraryTable2_log.ldf', ------------ 一定要是.ldf的文件,代表日誌文件
size=1mb, --默認數據庫大小
filegrowth=10% --增長量
)

然後,執行完腳本後,刷新一下就可以看到剛剛創建的數據庫了:

SQL Serve,跨庫,跨服務器訪問

2.接下來在兩個數據庫裏麵分別創建一個CrossTest1和一個CrossTest2表用於跨庫查詢

--創建CrossTest1腳本:

 use CrossLibraryTable1
 create table CrossTest1(
 Id int primary key identity,
 Name nvarchar(20)
 )

--創建CrossTest2腳本:

 use CrossLibraryTable2
 create table CrossTest2(
 Id int primary key identity,
 Name nvarchar(20)
 )

表創建好後,我們再添加幾條數據進去:

use CrossLibraryTable1 
 insert into CrossTest1 values('跨庫1測試數據1') 
 insert into CrossTest1 values('跨庫1測試數據2') use CrossLibraryTable2 
 insert into CrossTest2 values('跨庫2測試數據1') 
 insert into CrossTest2 values('跨庫2測試數據2')

切換到CrossLibraryTable1下麵查詢CrossLibraryTable2的數據可以看到報如下錯誤

SQL Serve,跨庫,跨服務器訪問

修正代碼:

SQL Serve,跨庫,跨服務器訪問

PS:像上麵那樣是可以進行查詢,然而在項目中使用上麵的代碼格式就會引發一些問題,那什麽問題呢?比如另一個數據庫的名稱改變了,我們就需要把所有用到這個的地方都得改掉,這樣就很麻煩,那麽有什麽解決方案麽,使得改一處就好了?當然有,用數據庫同義詞就可以輕鬆搞定!

創建同義詞步驟如下:

SQL Serve,跨庫,跨服務器訪問

SQL Serve,跨庫,跨服務器訪問

SQL Serve,跨庫,跨服務器訪問

不同服務器跨庫訪問實現

當數據庫在不同服務器上麵,用上麵的方法就不行了,那如何實現跨服務器訪問呢?很簡單,看下麵↓↓↓

SQL Serve,跨庫,跨服務器訪問

SQL Serve,跨庫,跨服務器訪問

SQL Serve,跨庫,跨服務器訪問

SQL Serve,跨庫,跨服務器訪問

好了,SQL Server跨庫跨服務器訪問實現就到這了,如果按照步驟一步一步操作的話,相信您也已經實現了,下一篇文章就來談談分庫分表實現。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對ASPKU源碼庫的支持。


注:相關教程知識閱讀請移步到MSSQL教程頻道。
下一篇:沒有了
相關MSSQL教程
熱門標簽

MSSQL教程Rss訂閱MSSQL教程搜索