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...