SQL Server 常用跨庫查詢,sqlserver跨庫
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={SQL Server};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'