溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL Server實現(xiàn)跨庫跨服務器訪問

發(fā)布時間:2021-06-03 17:27:33 來源:億速云 閱讀:229 作者:Leah 欄目:數(shù)據(jù)庫

這篇文章給大家介紹SQL Server實現(xiàn)跨庫跨服務器訪問,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1. 首先創(chuàng)建兩個數(shù)據(jù)庫CrossLibraryTable1,CrossLibraryTable2

--創(chuàng)建CrossLibraryTable1腳本:

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

--創(chuàng)建CrossLibraryTable2腳本:

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

然后,執(zhí)行完腳本后,刷新一下就可以看到剛剛創(chuàng)建的數(shù)據(jù)庫了:

SQL Server實現(xiàn)跨庫跨服務器訪問

2.接下來在兩個數(shù)據(jù)庫里面分別創(chuàng)建一個CrossTest1和一個CrossTest2表用于跨庫查詢

--創(chuàng)建CrossTest1腳本:

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

--創(chuàng)建CrossTest2腳本:

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

表創(chuàng)建好后,我們再添加幾條數(shù)據(jù)進去:

use CrossLibraryTable1 
 insert into CrossTest1 values('跨庫1測試數(shù)據(jù)1') 
 insert into CrossTest1 values('跨庫1測試數(shù)據(jù)2')

 use CrossLibraryTable2 
 insert into CrossTest2 values('跨庫2測試數(shù)據(jù)1') 
 insert into CrossTest2 values('跨庫2測試數(shù)據(jù)2')

切換到CrossLibraryTable1下面查詢CrossLibraryTable2的數(shù)據(jù)可以看到報如下錯誤

SQL Server實現(xiàn)跨庫跨服務器訪問

修正代碼:

SQL Server實現(xiàn)跨庫跨服務器訪問

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

創(chuàng)建同義詞步驟如下:

SQL Server實現(xiàn)跨庫跨服務器訪問

SQL Server實現(xiàn)跨庫跨服務器訪問

SQL Server實現(xiàn)跨庫跨服務器訪問

不同服務器跨庫訪問實現(xiàn)

當數(shù)據(jù)庫在不同服務器上面,用上面的方法就不行了,那如何實現(xiàn)跨服務器訪問呢?很簡單,看下面↓↓↓

SQL Server實現(xiàn)跨庫跨服務器訪問

SQL Server實現(xiàn)跨庫跨服務器訪問

SQL Server實現(xiàn)跨庫跨服務器訪問

SQL Server實現(xiàn)跨庫跨服務器訪問

關于SQL Server實現(xiàn)跨庫跨服務器訪問就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI