`

SQLServer跨库查询--分布式查询

 
阅读更多

SQLServer跨库查询--分布式查询

openrowset连接远程SQL或插入数据

--如果只是临时访问,可以直接用openrowset

--查询示例

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

 

 --导入示例

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

 

 --创建链接服务器

 exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'

 exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'

 go

 

 --查询示例

 select * from srv_lnk.数据库名.dbo.表名

 

 --导入示例

 select * into from srv_lnk.数据库名.dbo.表名

 

 --以后不再使用时删除链接服务器

 exec sp_dropserver 'srv_lnk','droplogins'

 go

--下面的示例访问来自某个表的数据,该表在 SQL Server 的另一个实例中。

SELECT *FROM OPENDATASOURCE('SQLOLEDB','Data Source=ServerName;User ID=MyUID;Password=MyPass').Northwind.dbo.Categories

 

下面是个查询的示例,它通过用于 Jet OLE DB 提供程序查询 Excel 电子表格。

SELECT *FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

 

例如:

SELECT * FROM OPENQUERY(Far_MDB, 'SELECT * FROM MDB_Member')

这就是从我的链接服务器当中去查询MDB_Member表的数据

备注:

1、关于链接服务器的详细情况请参阅联机丛书中的

sp_addlinkedserver

sp_addlinkedsrvlogin

sp_addserver

sp_dropserver

sp_serveroption

sp_linkedservers等系统级存储过程。

2、关于此链接服务器的创建及其使用在不同环境下(全部内网服务器、一内网一公网服务器、全公网服务器)测试,均告通过。

3、有时候在存储过程中访问链接服务器的时候可能会碰到如下的提示,必须要对ANSI warning ANSI nulls进行设置,这时候按照如下的方法进行设置:

设置本地数据库的属性-->连接-->选上ANSI warning ANSI nulls

如何用sql语句进行跨库查询

在机器B上的数据库database2中创建一个临时表#tmp

内容就是机器A上的数据库database1里面的Table1

如何用sql语句完成?(不借用dts等)

SQL code --创建链接服务器

exec sp_addlinkedserver  'ITSV','','SQLOLEDB','远程服务器名或ip地址'

exec sp_addlinkedsrvlogin 'ITSV','false',null,'用户名','密码'

--查询示例

select * from ITSV.数据库名.dbo.表名

--导入示例

select * into from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器

exec sp_dropserver 'ITSV','droplogins'

--连接远程/局域网数据(openrowset/openquery/opendatasource)

--1openrowset

--查询示例

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

--生成本地表

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

--把本地表导入远程表

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

select *from 本地表

--更新本地表

update b

set b.A=a.A

from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)as a inner join 本地表 b

on a.column1=b.column1

--openquery用法需要创建一个连接

--首先创建一个连接创建链接服务器

exec sp_addlinkedserver  'ITSV','','SQLOLEDB','远程服务器名或ip地址'

--查询

select *

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

--把本地表导入远程表

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

select * from 本地表

--更新本地表

update b

set b.B=a.B

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

inner join 本地表 b on a.A=b.A

--3opendatasource/openrowset

SELECT   *

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

--把本地表导入远程表

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

select * from 本地表

   链接服务器

OPENROWSET

OPENDATASOURCE

都可以

链接服务器.database1.dbo.table1

链接服务器.database1.dbo.table1

SQL code

select * into #

from openrowset('sqloledb','ip';'sa';'','select * from pubs.dbo.jobs')

如果只是偶尔使用   就用opendatasource/openrowset   固定的频繁使用建linked   server

 

分享到:
评论
1 楼 hehongwei44 2012-03-22  
公司数据迁移 就是用到这个方法  很不错  解决了我很大的麻烦。

相关推荐

    SQL语句实现跨Sql server数据库操作实例

    为了能够在SQL Server中使用`OPENQUERY`或`OPENDATASOURCE`等功能来执行跨服务器查询,需要确保SQL Server实例允许执行Ad Hoc分布式查询。这可以通过修改`AdHocDistributedQueries`选项来实现: 1. **显示高级选项*...

    SQL Server 跨库同步数据

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

    深入SQL Server 跨数据库查询的详解

    在SQL Server中,跨数据库查询是一项重要的功能,它允许用户在一个数据库中引用另一个数据库的数据,以便进行更复杂的数据分析和整合。本篇文章将深入探讨如何在SQL Server中执行跨数据库查询,以及涉及到的相关技术...

    SQL Server 2000 技术内幕

    6. **分布式处理**:通过ODBC和OLE DB接口,SQL Server 2000可以与其他数据源交互,支持分布式查询和数据复制,实现数据集成。 7. **数据仓库和OLAP服务**:SQL Server 2000包含了Analysis Services,提供多维数据...

    SQL Server JDBC驱动jar包

    3. 创建数据库连接:`Connection conn = DriverManager.getConnection("jdbc:sqlserver://服务器地址:端口;databaseName=数据库名", "用户名", "密码");` 4. 执行SQL语句:创建Statement或PreparedStatement对象,...

    sql server 2000高级开发指南sql server 2000高级开发指南

    SQL Server 2000支持分布式查询,允许跨多个数据库或服务器执行操作。此外,随着XML在数据交换中的广泛应用,SQL Server 2000提供了对XML的内置支持,包括XML数据类型、XML索引和XML函数。 七、分析服务和数据仓库 ...

    分布式环境下SQL Server的编程.pdf

    3. **分布式查询**:跨多个数据库或服务器执行查询,需要有效的查询优化策略。 4. **网络通信**:高效且可靠的客户端-服务器通信,包括TCP/IP、IPX/SPX等网络协议的使用。 5. **安全性**:确保数据在分布式环境中的...

    sql server基础文档.rar

    这份资料可能详细讲解了如何设置和管理分布式SQL Server环境,包括配置分布式查询、设置代理作业、实现跨服务器的监控和管理。 8. **SQL-Server(存储过程学习笔记).ppt** 存储过程是SQL Server中强大的数据库编程...

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

    sqlserver jdbc driver v2.0 for sqlserver 2005,2008

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=mydb", "username", "password"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery...

    SQLServer7指南(上)

    4. 分布式查询:通过OLE DB和开放数据库连接(ODBC),SQL Server 7.0能够执行跨多个数据源的复杂查询,实现数据集成。 三、新特性与改进 1. 索引管理:引入了簇索引和非簇索引,以及位图索引,优化查询性能。同时,...

    Real World SQL Server Administration with Perl

    - **网络共享和域信息查询**:获取SQL Server所在网络环境的信息,对于分布式数据库系统的管理尤为重要。 - **SMTP邮件发送**:自动发送报警通知或报告,提高问题响应速度和运维效率。 #### 实战案例分析 书中...

    数据库技术及应用——SQL Server 21966-00.zip

    9. 分布式系统:SQL Server支持分布式数据库和复制技术,可以实现数据的跨服务器分布和同步,满足企业多地点、高可用性的需求。 10. 实践项目:通过实际案例,将理论知识应用于解决实际问题,如构建数据库应用、...

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server ...

    oracel sql developer jtds-1.2.5-dist

    2. **jtds-1.2.5.jar**:这是JTDs JDBC驱动的主要库文件,包含实现SQL Server连接所需的所有Java类和方法。将此JAR文件添加到SQL Developer的类路径中,即可启用对SQL Server的支持。 3. **LICENSE**:文件包含软件...

    数据库原理与SQL Server教程

    - 分布式查询:跨多个数据库或服务器的查询。 - 触发器(Trigger):在特定事件发生时自动执行的代码。 - 存储过程(Stored Procedure):预编译的SQL代码,提高性能并封装业务逻辑。 9. **SQL Server集成服务...

    新手购物车用的.NET和sql Server数据库

    6. **扩展性**:随着购物车系统用户量的增长,SQL Server能够通过分布式数据库、分区等手段来提升系统的扩展性和可伸缩性。 综上所述,使用.NET和SQL Server构建购物车系统,不仅可以利用.NET的强大功能进行后端...

    SqlServer教程(3).rar

    - 分布式查询:使用链接服务器进行跨数据库查询,实现数据集成。 - 高可用性:学习复制、故障转移群集和AlwaysOn可用性组,确保业务连续性。 - 分析服务与数据仓库:简介SQL Server的OLAP功能和数据仓库构建。 ...

    SQLServer触发器实现不同服务器数据同步.pdf

    SQL Server 触发器实现不同...本文提供了一个使用 SQL Server 触发器实现不同服务器之间的数据同步的解决方案,涉及到了多个知识点,包括 SQL Server 触发器、分布式事务处理服务、链接服务器、存储过程和作业等。

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server ...

Global site tag (gtag.js) - Google Analytics