SQL Server實(shí)現(xiàn)跨庫(kù)跨服務(wù)器訪問的方法
前言
我們經(jīng)常會(huì)遇到一個(gè)數(shù)據(jù)庫(kù)要訪問另一個(gè)數(shù)據(jù)庫(kù),或者一臺(tái)服務(wù)器要訪問另一臺(tái)服務(wù)器里面的數(shù)據(jù)庫(kù)。 那么這個(gè)如何實(shí)現(xiàn)的呢? 相信看完這篇文章你就懂了!
同一臺(tái)服務(wù)器跨庫(kù)訪問實(shí)現(xiàn)
1. 首先創(chuàng)建兩個(gè)數(shù)據(jù)庫(kù)CrossLibraryTable1,CrossLibraryTable2
--創(chuàng)建CrossLibraryTable1腳本:
use master --打開master數(shù)據(jù)庫(kù),一般的創(chuàng)建語句都在master中執(zhí)行. go if exists (select * from sysdatabases where name='CrossLibraryTable1') drop database CrossLibraryTable1 /*檢查有沒有這個(gè)數(shù)據(jù)庫(kù),如果有就刪除它。*/ go create database CrossLibraryTable1 on primary ( name='CrossLibraryTable1_data', ------------ 養(yǎng)成好習(xí)慣,數(shù)據(jù)文件加_data filename='F:\代碼存放\數(shù)據(jù)庫(kù)\CrossLibraryTable1_data.mdf', ------------ 一定要是.mdf的文件,代表主數(shù)據(jù)文件 size=5mb, --默認(rèn)數(shù)據(jù)庫(kù)大小 maxsize=100mb, --最大容量 filegrowth=1mb --增長(zhǎng)量 ) log on ( name='CrossLibraryTable1_log', ------------ 養(yǎng)成好習(xí)慣,日志文件加_log filename='F:\代碼存放\數(shù)據(jù)庫(kù)\CrossLibraryTable1_log.ldf', ------------ 一定要是.ldf的文件,代表日志文件 size=1mb, --默認(rèn)數(shù)據(jù)庫(kù)大小 filegrowth=10% --增長(zhǎng)量 )
--創(chuàng)建CrossLibraryTable2腳本:
use master --打開master數(shù)據(jù)庫(kù),一般的創(chuàng)建語句都在master中執(zhí)行. go if exists (select * from sysdatabases where name='CrossLibraryTable2') drop database CrossLibraryTable2 /*檢查有沒有這個(gè)數(shù)據(jù)庫(kù),如果有就刪除它。*/ go create database CrossLibraryTable2 on primary ( name='CrossLibraryTable2_data', ------------ 養(yǎng)成好習(xí)慣,數(shù)據(jù)文件加_data filename='F:\代碼存放\數(shù)據(jù)庫(kù)\CrossLibraryTable2_data.mdf', ------------ 一定要是.mdf的文件,代表主數(shù)據(jù)文件 size=5mb, --默認(rèn)數(shù)據(jù)庫(kù)大小 maxsize=100mb, --最大容量 filegrowth=1mb --增長(zhǎng)量 ) log on ( name='CrossLibraryTable2_log', ------------ 養(yǎng)成好習(xí)慣,日志文件加_log filename='F:\代碼存放\數(shù)據(jù)庫(kù)\CrossLibraryTable2_log.ldf', ------------ 一定要是.ldf的文件,代表日志文件 size=1mb, --默認(rèn)數(shù)據(jù)庫(kù)大小 filegrowth=10% --增長(zhǎng)量 )
然后,執(zhí)行完腳本后,刷新一下就可以看到剛剛創(chuàng)建的數(shù)據(jù)庫(kù)了:
2.接下來在兩個(gè)數(shù)據(jù)庫(kù)里面分別創(chuàng)建一個(gè)CrossTest1和一個(gè)CrossTest2表用于跨庫(kù)查詢
--創(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)建好后,我們?cè)偬砑訋讞l數(shù)據(jù)進(jìn)去:
use CrossLibraryTable1 insert into CrossTest1 values('跨庫(kù)1測(cè)試數(shù)據(jù)1') insert into CrossTest1 values('跨庫(kù)1測(cè)試數(shù)據(jù)2') use CrossLibraryTable2 insert into CrossTest2 values('跨庫(kù)2測(cè)試數(shù)據(jù)1') insert into CrossTest2 values('跨庫(kù)2測(cè)試數(shù)據(jù)2')
切換到CrossLibraryTable1下面查詢CrossLibraryTable2的數(shù)據(jù)可以看到報(bào)如下錯(cuò)誤
修正代碼:
PS:像上面那樣是可以進(jìn)行查詢,然而在項(xiàng)目中使用上面的代碼格式就會(huì)引發(fā)一些問題,那什么問題呢?比如另一個(gè)數(shù)據(jù)庫(kù)的名稱改變了,我們就需要把所有用到這個(gè)的地方都得改掉,這樣就很麻煩,那么有什么解決方案么,使得改一處就好了?當(dāng)然有,用數(shù)據(jù)庫(kù)同義詞就可以輕松搞定!
創(chuàng)建同義詞步驟如下:
不同服務(wù)器跨庫(kù)訪問實(shí)現(xiàn)
當(dāng)數(shù)據(jù)庫(kù)在不同服務(wù)器上面,用上面的方法就不行了,那如何實(shí)現(xiàn)跨服務(wù)器訪問呢?很簡(jiǎn)單,看下面↓↓↓
好了,SQL Server跨庫(kù)跨服務(wù)器訪問實(shí)現(xiàn)就到這了,如果按照步驟一步一步操作的話,相信您也已經(jīng)實(shí)現(xiàn)了,下一篇文章就來談?wù)劮謳?kù)分表實(shí)現(xiàn)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Navicat連接SQL Server數(shù)據(jù):報(bào)錯(cuò)08001-命名管道提供程序的完美解決方法
小編新安裝了sqlserver用navicat進(jìn)行連接時(shí)出現(xiàn)一系列問題,不知道該怎么解決,小編小編給大家分享一篇教程關(guān)于Navicat連接SQL Server數(shù)據(jù):報(bào)錯(cuò)08001-命名管道提供程序的問題,感興趣的朋友一起看看吧2021-08-08將表數(shù)據(jù)生成Insert腳本 比較好用的生成插入語句的SQL腳本
比較好用的生成插入語句的SQL腳本 將表數(shù)據(jù)生成Insert腳本2010-05-05SQL 判斷給定日期值(或時(shí)間段)所在星期的星期一和星期天的日期
最近報(bào)表要用到一項(xiàng)功能,需要把數(shù)據(jù)源根據(jù)記錄發(fā)生日期所在的星期序列進(jìn)行分組。因此就寫了兩個(gè)相關(guān)SQL Function進(jìn)行調(diào)用。2011-10-10針對(duì)SQL 2000 的分頁(yè)存儲(chǔ)過程代碼分享
針對(duì)SQL 2000 的分頁(yè)存儲(chǔ)過程,有詳細(xì)參數(shù)說明2011-07-07sqlserver中根據(jù)字符分割字符串的最好的寫法分享
因數(shù)據(jù)庫(kù)中保存的是以,號(hào)分隔的數(shù)據(jù),需要在界面上以表格的方式顯示出來。特想出以下方法2012-05-05SQL2000中改名和刪除默認(rèn)sa帳號(hào)的最安全方法
眾所周知,在M$sql中有個(gè)絕對(duì)是網(wǎng)絡(luò)安全中的隱患的帳號(hào)sa,系統(tǒng)管理員 (sa),默認(rèn)情況下,它指派給固定服務(wù)器角色 sysadmin,并不能進(jìn)行更改。2008-03-03巧妙利用PARTITION分組排名遞增特性解決合并連續(xù)相同數(shù)據(jù)行
這篇文章主要介紹了巧妙利用PARTITION分組排名遞增特性解決合并連續(xù)相同數(shù)據(jù)行,需要的朋友可以參考下2014-08-08驅(qū)動(dòng)程序無法通過使用安全套接字層(SSL)加密與?SQL?Server?建立安全連接,錯(cuò)誤:“The?serve
這篇文章主要介紹了驅(qū)動(dòng)程序無法通過使用安全套接字層(SSL)加密與?SQL?Server?建立安全連接,錯(cuò)誤:“The?server?selected?protocol?version?TLS10?is?not?accepted?by?client,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03SQL?Server?Reporting?Services?匿名登錄的問題及解決方案
這篇文章主要介紹了關(guān)于?SQL?Server?Reporting?Services?匿名登錄的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09