SQL Server 常用跨庫查詢

2021-07-01 20:27:37 字數 1090 閱讀 7483

1、臨時使用方法  openrowset

a. 使用有 select 的openrowset 與 microsoft ole db provider for sql server

以下範例使用 microsoft ole db provider for sql server,以訪問命名為 remote1 的遠端資料伺服器上 pubs 資料庫的 authors 表。從 datasource、user_id 與 password 初始化提供者,且使用 select 查詢資料表。

select * from openrowset('sqloledb','remote1';'sa';'mypass', [pubs].dbo.authors) as a

b. 使用 openrowset 與 ole db provider for odbc

以下範例使用 ole db provider for odbc 與 sql server odbc 驅動程式,來訪問命名為 remote1 的遠端資料伺服器上 pubs 資料庫的 authors 表。以 odbc 提供者使用的 odbc 語法指定 provider_string 初始化提供者,並使用 catalog.schema.object 語法來定義傳回的資料庫表。

select * from openrowset('msdasql','driver=;server=remote1;uid=sa;pwd=mypass',  [pubs].dbo.pubs)  as a

2、如果經常訪問或資料量大,建議用鏈結伺服器

--建立鏈結伺服器

exec sp_addlinkedserver 'srv_lnk','','sqloledb','遠端伺服器名或ip位址'

exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'使用者名稱','密碼'

--查詢示例

select * from srv_lnk.資料庫名.dbo.表名

--匯入示例

select * into 表 from srv_lnk.資料庫名.dbo.表名

--處理完成後刪除鏈結伺服器

exec sp_dropserver 'srv_lnk','droplogins'



SQLServer跨庫查詢

用openrowset連線遠端sql或插入資料 如果只是臨時訪問,可以直接用openrowset 查詢示例 select from openrowset sqloledb sql伺服器名 使用者名稱 密碼 資料庫名.dbo.表名 在跨庫查詢時需要啟用ad hoc distributed querie...

SQL Server跨庫查詢

方式一 語句select from 資料庫a.dbo.表a a,資料庫b.dbo.表b b where a.field b.field dbo 可以省略 如 select from 資料庫a.表a a,資料庫b.表b b where a.field b.field 方式二 在乙個資料庫掛上另乙個資料...

sql server跨庫查詢

方式一 dbo可以省略 select from 資料庫a.dbo.表a a,資料庫b.dbo.表b b where a.field b.field 方式二 在乙個資料庫掛上另乙個資料庫的外鏈 對映乙個遠端資料庫 exec sp addlinkedserver 遠端資料庫的ip或主機名 n sql s...