新聞中心
sql,CREATE VIEW 跨庫(kù)視圖 AS,SELECT 列1, 列2, ...,F(xiàn)ROM [數(shù)據(jù)庫(kù)名].[架構(gòu)名].[表名],WHERE 條件;,“,,將上述代碼中的 “數(shù)據(jù)庫(kù)名”、”架構(gòu)名”、”表名” 和 “條件” 替換為實(shí)際的值。在SQL Server中,創(chuàng)建視圖跨庫(kù)取數(shù)據(jù)需要使用完全限定的名稱(包括服務(wù)器名、數(shù)據(jù)庫(kù)名、架構(gòu)名和表名)來(lái)引用遠(yuǎn)程數(shù)據(jù)庫(kù)中的表,以下是創(chuàng)建跨庫(kù)視圖的步驟:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、宿州網(wǎng)站維護(hù)、網(wǎng)站推廣。
1、確定遠(yuǎn)程數(shù)據(jù)庫(kù)的連接信息,包括服務(wù)器名、數(shù)據(jù)庫(kù)名、用戶名和密碼。
2、在本地?cái)?shù)據(jù)庫(kù)中創(chuàng)建一個(gè)鏈接服務(wù)器,以便訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)。
3、使用完全限定的名稱創(chuàng)建視圖,引用遠(yuǎn)程數(shù)據(jù)庫(kù)中的表。
下面是一個(gè)具體的示例:
1、假設(shè)我們有兩個(gè)數(shù)據(jù)庫(kù)服務(wù)器:ServerA(本地服務(wù)器)和ServerB(遠(yuǎn)程服務(wù)器),我們需要在ServerA的數(shù)據(jù)庫(kù)DBA中創(chuàng)建一個(gè)視圖,該視圖將從ServerB的數(shù)據(jù)庫(kù)DBB中獲取數(shù)據(jù)。
2、在ServerA上創(chuàng)建一個(gè)鏈接服務(wù)器,連接到ServerB,可以使用以下代碼創(chuàng)建鏈接服務(wù)器:
EXEC sp_addlinkedserver @server='LinkedServerB', 鏈接服務(wù)器名稱 @srvproduct='', 產(chǎn)品名稱(可以為空) @provider='SQLNCLI', 使用SQL Server Native Client OLE DB提供程序 @datasrc='ServerB'; 遠(yuǎn)程服務(wù)器名稱 EXEC sp_addlinkedsrvlogin @rmtsrvname='LinkedServerB', 鏈接服務(wù)器名稱 @useself='false', 使用不同的登錄名 @locallogin=NULL, 本地登錄名(可以為空) @rmtuser='Username', 遠(yuǎn)程登錄名 @rmtpassword='Password'; 遠(yuǎn)程密碼
3、現(xiàn)在,我們可以在ServerA的數(shù)據(jù)庫(kù)DBA中創(chuàng)建一個(gè)視圖,該視圖將從ServerB的數(shù)據(jù)庫(kù)DBB中獲取數(shù)據(jù),如果DBB中有一個(gè)名為Sales的表,我們可以使用以下代碼創(chuàng)建視圖:
CREATE VIEW SalesView AS SELECT * FROM LinkedServerB.DBB.dbo.Sales;
相關(guān)問(wèn)題與解答:
Q1: 如果遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫(kù)名稱或架構(gòu)名稱發(fā)生變化,如何更新視圖?
A1: 如果遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫(kù)名稱或架構(gòu)名稱發(fā)生變化,只需在創(chuàng)建視圖時(shí)使用新的完全限定名稱即可,如果數(shù)據(jù)庫(kù)名稱從DBB更改為DBC,可以將視圖定義更改為:
CREATE VIEW SalesView AS SELECT * FROM LinkedServerB.DBC.dbo.Sales;
Q2: 如果需要在多個(gè)本地?cái)?shù)據(jù)庫(kù)中創(chuàng)建跨庫(kù)視圖,是否需要為每個(gè)數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)鏈接服務(wù)器?
A2: 不需要,鏈接服務(wù)器是在實(shí)例級(jí)別創(chuàng)建的,因此可以在任何數(shù)據(jù)庫(kù)中使用,只需確保在創(chuàng)建視圖時(shí)使用正確的鏈接服務(wù)器名稱即可,如果在另一個(gè)數(shù)據(jù)庫(kù)DBC中創(chuàng)建一個(gè)視圖,仍然可以使用LinkedServerB作為鏈接服務(wù)器名稱:
CREATE VIEW AnotherSalesView AS SELECT * FROM LinkedServerB.DBB.dbo.Sales;
新聞名稱:sqlserver創(chuàng)建視圖如何跨庫(kù)取數(shù)據(jù)
文章鏈接:http://m.fisionsoft.com.cn/article/cdcgdod.html


咨詢
建站咨詢
