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)
--1、openrowset
--查询示例
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
--3、opendatasource/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
分享到:
相关推荐
为了能够在SQL Server中使用`OPENQUERY`或`OPENDATASOURCE`等功能来执行跨服务器查询,需要确保SQL Server实例允许执行Ad Hoc分布式查询。这可以通过修改`AdHocDistributedQueries`选项来实现: 1. **显示高级选项*...
在SQL Server中,跨库同步数据是一项常见的需求,尤其是在多数据库环境或分布式系统中。本篇将详细讲解如何通过SQL Server的存储过程和链接服务器功能实现跨库数据同步。 首先,跨库同步数据通常涉及到两个主要步骤...
在SQL Server中,跨数据库查询是一项重要的功能,它允许用户在一个数据库中引用另一个数据库的数据,以便进行更复杂的数据分析和整合。本篇文章将深入探讨如何在SQL Server中执行跨数据库查询,以及涉及到的相关技术...
6. **分布式处理**:通过ODBC和OLE DB接口,SQL Server 2000可以与其他数据源交互,支持分布式查询和数据复制,实现数据集成。 7. **数据仓库和OLAP服务**:SQL Server 2000包含了Analysis Services,提供多维数据...
3. 创建数据库连接:`Connection conn = DriverManager.getConnection("jdbc:sqlserver://服务器地址:端口;databaseName=数据库名", "用户名", "密码");` 4. 执行SQL语句:创建Statement或PreparedStatement对象,...
SQL Server 2000支持分布式查询,允许跨多个数据库或服务器执行操作。此外,随着XML在数据交换中的广泛应用,SQL Server 2000提供了对XML的内置支持,包括XML数据类型、XML索引和XML函数。 七、分析服务和数据仓库 ...
3. **分布式查询**:跨多个数据库或服务器执行查询,需要有效的查询优化策略。 4. **网络通信**:高效且可靠的客户端-服务器通信,包括TCP/IP、IPX/SPX等网络协议的使用。 5. **安全性**:确保数据在分布式环境中的...
这份资料可能详细讲解了如何设置和管理分布式SQL Server环境,包括配置分布式查询、设置代理作业、实现跨服务器的监控和管理。 8. **SQL-Server(存储过程学习笔记).ppt** 存储过程是SQL Server中强大的数据库编程...
未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=mydb", "username", "password"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery...
4. 分布式查询:通过OLE DB和开放数据库连接(ODBC),SQL Server 7.0能够执行跨多个数据源的复杂查询,实现数据集成。 三、新特性与改进 1. 索引管理:引入了簇索引和非簇索引,以及位图索引,优化查询性能。同时,...
- **网络共享和域信息查询**:获取SQL Server所在网络环境的信息,对于分布式数据库系统的管理尤为重要。 - **SMTP邮件发送**:自动发送报警通知或报告,提高问题响应速度和运维效率。 #### 实战案例分析 书中...
9. 分布式系统:SQL Server支持分布式数据库和复制技术,可以实现数据的跨服务器分布和同步,满足企业多地点、高可用性的需求。 10. 实践项目:通过实际案例,将理论知识应用于解决实际问题,如构建数据库应用、...
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 ...
2. **jtds-1.2.5.jar**:这是JTDs JDBC驱动的主要库文件,包含实现SQL Server连接所需的所有Java类和方法。将此JAR文件添加到SQL Developer的类路径中,即可启用对SQL Server的支持。 3. **LICENSE**:文件包含软件...
- 分布式查询:跨多个数据库或服务器的查询。 - 触发器(Trigger):在特定事件发生时自动执行的代码。 - 存储过程(Stored Procedure):预编译的SQL代码,提高性能并封装业务逻辑。 9. **SQL Server集成服务...
6. **扩展性**:随着购物车系统用户量的增长,SQL Server能够通过分布式数据库、分区等手段来提升系统的扩展性和可伸缩性。 综上所述,使用.NET和SQL Server构建购物车系统,不仅可以利用.NET的强大功能进行后端...
- 分布式查询:使用链接服务器进行跨数据库查询,实现数据集成。 - 高可用性:学习复制、故障转移群集和AlwaysOn可用性组,确保业务连续性。 - 分析服务与数据仓库:简介SQL Server的OLAP功能和数据仓库构建。 ...
SQL Server 触发器实现不同...本文提供了一个使用 SQL Server 触发器实现不同服务器之间的数据同步的解决方案,涉及到了多个知识点,包括 SQL Server 触发器、分布式事务处理服务、链接服务器、存储过程和作业等。
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 ...