`
weitd
  • 浏览: 143340 次
  • 性别: Icon_minigender_1
  • 来自: 新都
社区版块
存档分类
最新评论

跨库查询(转)

 
阅读更多
在使用分布式结构的系统时,我们常常会遇到跨库查询的问题,跨库查询一般使用以下方法

1. openrowset

例子:

select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)


只有在以下情况下才能使用 OPENROWSET 访问 OLE DB 数据源中的远程数据:

指定访问接口的 DisallowAdhocAccess 注册表选项已显式设置为 0,并启用了 Ad Hoc Distributed Queries 高级配置选项。如果未设置这些选项,则默认行为不允许即席访问。

需要修改数据库服务器的注册表DisallowAdhocAccess 并通过sp_configure 修改Ad Hoc Distributed Queries高级配置选项为启用

2.opendatasource

例子:
SELECT   *

FROM   opendatasource('SQLOLEDB', 'Data Source=ip/ServerName;User ID=登陆名; password=密码' ).数据库名.dbo.表名


同样环境需要与1的配置一样



3.openquery

例子:

--首先创建一个连接创建链接服务器
exec sp_addlinkedserver  'ITSV','','SQLOLEDB','远程服务器名或ip地址'


--查询
select *

FROM openquery(ITSV, 'SELECT *  FROM 数据库.dbo.表名')


--把本地表导入远程表
insert openquery(ITSV, 'SELECT *  FROM 数据库.dbo.表名')

select * from 本地表




4. sp_addlinkedserver

sp_addlinkedsrvlogin



例子:
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'




推荐使用的是方法4,在代码中,也推荐使用方法4的连接方式,出于效率和安全行而已。
分享到:
评论

相关推荐

    oracle到sqlserver 跨库查询

    .oracle 到 SQL Server 跨库查询 Oracle 到 SQL Server 跨库查询是指通过网关工具将数据从 SQL Server 数据库中抽取到 Oracle 数据库中。这个过程需要安装和配置网关软件,并进行相应的设置和配置。 一、网关软件...

    teiid搭建及跨库查询

    它能够连接各种类型的数据源,包括关系型数据库、非关系型数据库和文件类型的文本数据源,并通过虚拟数据库(VDB)技术实现跨库查询。本文将详细介绍在Centos环境下搭建Teiid环境并实现跨库查询的步骤,包含关系型、...

    oracle触发器的创建和跨数据库查询.zip

    在这个“oracle触发器的创建和跨数据库查询”的主题中,我们将深入探讨如何创建触发器以及如何利用数据库链接(DB Link)进行跨数据库查询和操作。 首先,让我们了解如何创建Oracle触发器。触发器的创建通常涉及...

    dbeaver数据库工具,支持多数据库

    DBeaver的这种跨平台特性极大地提高了工作效率,尤其对于那些需要在多个数据库系统之间切换的用户来说,它是一个不可或缺的利器。 首先,DBeaver提供了统一的图形化用户界面(GUI),通过这个界面,用户可以执行SQL...

    SQL Server 跨库同步数据

    在SQL Server中,跨库同步数据是一项常见的需求,尤其是在多数据库环境或分布式系统中。本篇将详细讲解如何通过SQL Server的存储过程和链接服务器功能实现跨库数据同步。 首先,跨库同步数据通常涉及到两个主要步骤...

    跨数据库数据传输

    - 在构建跨数据库查询时,确保所有Oracle相关的SQL语句都使用大写字母书写,以避免语法错误。 - 配置Oracle客户端的Net服务名是连接成功的关键之一。 - 对于复杂的数据类型转换问题,建议预先进行数据清洗和类型转换...

    纯真IP库转换工具转换为其他IP库或者TXT文本

    这些数据对于网络管理和分析至关重要,如识别用户来源地、防止跨区域攻击等。 4. **数据转换**:IPwry.exe作为转换工具,可能具备的功能包括将IP库从数据库格式转为文本格式(如CSV或TXT),或者转换为特定软件能...

    c#asp.net表格Html数据模板转换Pdf文件web打印报表dll

    可以使用CSS媒体查询来优化针对打印的样式,确保在打印预览中看起来理想。 总的来说,C# ASP.NET开发人员在处理HTML数据到PDF转换和Web打印时,需要熟练掌握HTML解析库、PDF生成库以及JavaScript的打印功能。通过...

    JAVA实现跨数据库服务器数据导出导入功能

    当涉及到不同数据库系统间的数据交互,如从SQL Server到MySQL,JAVA作为一种强大的后端编程语言,提供了丰富的库和工具来实现跨数据库服务器的数据导出和导入功能。本文将深入探讨如何使用JAVA来实现这一目标。 ...

    跨平台 获取本机IP/MAC地址,检测是否内网IP,字符串IP转换成Number地址

    跨平台获取本机IP地址通常需要使用操作系统提供的API或者第三方库。在Windows系统中,可以使用Winsock API,而在Linux或Mac OS中,可以利用socket库和`ifconfig`命令。对于Java开发者,可以使用`java.net.Network...

    应对sharding-jdbc结合mybatis实现分库分表功能 分表的联合查询采用将mysql的数据同步到elasticsearch进行筛选

    4. **联合查询**:在分库分表后,传统的跨表查询会变得复杂。为了解决这个问题,标题中提到的“分表的联合查询”可以通过异构数据源的方式来实现。例如,将MySQL中的数据同步到Elasticsearch,利用Elasticsearch强大...

    c#查询库 主要是系统库和一些windows常用库

    C# 查询库主要涵盖的是 .NET Framework 中的系统库和常用库,这些库为开发者提供了丰富的功能和资源,便于开发高效、稳定的C#应用程序。以下将详细介绍这些库及其重要组成部分。 1. **.NET Framework 类库**:这是 ...

    连接mysql sqlserver的两个数据库

    这通常涉及到数据库之间的数据迁移、同步或者跨平台查询。为了实现这一目标,我们需要借助特定的驱动程序和工具。 在提供的压缩包文件中,有两个重要的Java驱动程序: 1. `mysql-connector-java-5.1.7-bin.jar`:这...

    kettle实现SQL关联查询

    "Merge Join" Step就是其中之一,它允许用户实现类似SQL中的各种类型关联查询,包括INNER JOIN、LEFT JOIN、RIGHT JOIN以及FULL JOIN。 INNER JOIN是SQL中的一种基本联接类型,它返回两个表中存在匹配的记录。在...

    gdal 2.12库(包括windows版本和linux版本)

    有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ARCGIS 9.3,Google Earth和跨平台的GRASS GIS系统。利用GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对矢量和栅格文件数据的支持。

    编码查询 各种文本转到 unicode utf-8 gb2312 编码 unicode utf-8 gb2312 编码转换到文字

    例如,如果你有一个使用GB2312编码的文本文件,而你希望将其转换为UTF-8,可以使用文本编辑器(如Notepad++)或者编程语言(如Python的`codecs`库)来实现。反之,如果要将Unicode(如UTF-8编码的文本)转换成GB2312...

    开源密码库

    libgcrypt是一个跨平台的加密库,它由GNOME项目开发并维护。这个库的主要目的是提供安全的加密功能,包括对称加密、公钥加密、哈希函数和伪随机数生成器(PRNG)。它广泛应用于各种软件项目,如GnuPG、Tor和Linux...

    libdns库 纯C语言编写

    1. **跨平台性**:由于是用C语言编写,`libdns`库可以轻松地在各种操作系统上运行,包括Linux、Windows、macOS等,这使得它成为跨平台开发的优选。 2. **API设计**:`libdns`提供了一套清晰、易于理解和使用的API,...

    Boost.URL是一个用于操作统一资源标识符(URI)和定位器(URL)的库。.zip

    5. **安全性**: 库会自动处理URL编码和解码,防止常见的注入攻击,如跨站脚本(XSS)和跨站请求伪造(CSRF)。 6. **兼容性**: Boost.URL库设计时考虑了与其他Boost库的兼容性,可以方便地与Boost.Asio、Boost ...

Global site tag (gtag.js) - Google Analytics