SQL Server實現(xiàn)跨庫跨服務器訪問的方法
我們經(jīng)常會遇到一個數(shù)據(jù)庫要訪問另一個數(shù)據(jù)庫,或者一臺服務器要訪問另一臺服務器里面的數(shù)據(jù)庫。 那么這個如何實現(xiàn)的呢? 相信看完這篇文章你就懂了!
同一臺服務器跨庫訪問實現(xiàn)
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ù)庫了:

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ù)可以看到報如下錯誤

修正代碼:

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



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




好了,SQL Server跨庫跨服務器訪問實現(xiàn)就到這了,如果按照步驟一步一步操作的話,相信您也已經(jīng)實現(xiàn)了,下一篇文章就來談談分庫分表實現(xiàn)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對本站的支持。
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關注官方微信