SQL Server 常用跨库查询

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‘




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。