




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
sql中如何调用另一台服务器的数据库查询数据呢? 建立链接服务器,然后查询时使用完整路径servername.dbname.schemaname.objectnamesp_addlinkedserver server=CARDSRV,srvproduct=,catalog=iHRP,provider=SQLOLEDB,provstr=DRIVER=SQL Server;Initial Catalog=iHRP;SERVER=2;UID=sa;PWD=;其中server名称随便取,catalog为数据库名,provider为数据库驱动,provstr为连接字符串然后使用sp_linkedservers,查看此服务器是否已经成功注册为链接服务器,如果已经注册成功,则使用EXEC sp_addlinkedsrvlogin CARDSRV,false,注册login帐号,然后你就可以执行一个Sql语句,试试看看是否可以从链接服务器中操作数据了,select top 10 * from CARDSRV.iHRP.dbo.Dept_Class就是从刚才我设置的链接服务器TEST中的一个表:Dept_Class中查询数据。用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,droploginsgo-下面的示例访问来自某个表的数据,该表在 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由于项目需要,在开发过程遇上跨数据库服务器访问数据的问题.在网络上一搜,资料确实不少,不过解决自己的问题也花了大半天的时候,在这里花些时间总结一下.1.确立问题由于需要进行跨数据库服务器的查询操作,所以我个人把其定位于分布式查询数据的问题.2.解决方案第一个概念.链接服务器.链接服务器一般用来处理分布式查询。当客户端应用程序通过链接服务器执行分布式查询时,SQL Server 将分析该命令,并向 OLE DB 发送行集请求。行集请求的形式可以是对提供程序执行查询或从提供程序打开基表。分布式查询可以访问来自多种异类数据源的数据,而这些数据可存储在相同或不同的计算机上。Microsoft? SQL Server? 2000 通过使用 OLE DB(Microsoft 通用数据访问应用程序接口 (API) 规范)支持分布式查询。链接服务器配置允许 Microsoft? SQL Server? 对其它服务器上的 OLE DB 数据源执行命令。链接服务器具有以下优点:远程服务器访问。对整个企业内的异类数据源执行分布式查询、更新、命令和事务的能力。能够以相似的方式确定不同的数据源。链接服务器组件链接服务器的定义指定了 OLE DB 提供程序和 OLE DB 数据源。OLE DB 提供程序是管理特定数据源和与特定数据源进行交互的动态链接库 (DLL)。OLE DB 数据源标识可通过 OLE DB 访问的特定数据库。尽管通过链接服务器的定义所查询的数据源通常是数据库,但也存在适用于多种文件和文件格式的 OLE DB 提供程序,包括文本文件、电子表格数据和全文内容检索结果。下表说明了最常用于 SQL Server 的 OLE DB 提供程序和数据源示例。OLE DB提供程序 OLE DB 数据源用于 SQL Server 的 Microsoft OLE DB 提供程序 SQL Server 实例用于 Jet 的 Microsoft OLE DB 提供程序 mdb 数据库文件的路径名用于 ODBC 的 Microsoft OLE DB 提供程序 指向某个具体数据库的 ODBC 数据源名称用于 oracle 的 Microsoft OLE DB 提供程序 指向 oracle 数据库的 SQL*Net 别名用于索引服务的 Microsoft OLE DB 提供程序 能够对其执行属性搜索或全文检索的内容文件说明 SQL Server 只针对分别用于 SQL Server、Jet、Oracle、索引服务和 ODBC 的 Microsoft OLE DB 提供程序进行了测试。然而,SQL Server 分布式查询旨在与任何实现了必需的 OLE DB 接口的 OLE DB 提供程序一起使用。为了使数据源能够通过链接服务器返回数据,那个数据源的 OLE DB 提供程序 (DLL) 必须位于 SQL Server 所在的服务器上。链接服务器一般用来处理分布式查询。当客户端应用程序通过链接服务器执行分布式查询时,SQL Server 将分析该命令,并向 OLE DB 发送行集请求。行集请求的形式可以是对提供程序执行查询或从提供程序打开基表。管理链接服务器的定义设置链接服务器时,请注册 SQL Server 的连接信息和数据源信息。完成注册后,该数据源总可以用单个逻辑名称(即实例名)引用。可以使用存储过程或 SQL Server 企业管理器来创建或删除链接服务器的定义。使用存储过程:使用 sp_addlinkedserver 创建链接服务器的定义。若要查看有关给定的 SQL Server 实例中定义的链接服务器的信息,请使用 sp_linkedservers。有关更多信息,请参见 sp_addlinkedserver 和 sp_linkedservers。使用 sp_dropserver 删除链接服务器的定义。还可以使用此存储过程删除远程服务器。使用 SQL Server 企业管理器:使用 SQL Server 企业管理器控制台树和链接服务器节点(在安全性文件夹内)来创建链接服务器的定义。为链接服务器定义名称、提供程序属性、服务器选项和安全选项。有关各种为不同的 OLE DB 数据源设置链接服务器的方式以及要使用的参数值的更多信息,请参见 sp_addlinkedserver。通过右击链接服务器并单击属性命令,可编辑链接服务器的定义。通过右击链接服务器并单击删除命令,可删除链接服务器的定义。当对链接服务器执行分布式查询时,请对每个要查询的数据源指定完全合法的、由四部分组成的表名。这个由四部分组成的名称的格式应是:linked_server_name.catalog.schema.object_name。 众所周知,在大型的数据库系统设计中,为了提升效率,不可避免的要将不用的业务放在不同的数据实例上,因此我们使用到了链接服务器,链接服务器为大家在不同的服务之间进行分布式数据操作提供了便利。本例子基于windows 2003操作系统,Sql server 2000(sp4)数据库。首先要打开你本地服务器和远程服务器的MSDTC:开始-Microsoft SQL Server-服务管理器-选择服务中的 Distributed Transaction Coordinator(此即DTC),点击“启动”按钮,启动MSDTC.打开以后,在本地服务器上注册远程服务器的信息,创建linkedServer,操作代码如下:exec sp_addlinkedserver Far_MDB,SQLOLEDB,YOIIO005,MDB然后使用sp_linkedservers,查看此服务器是否已经成功注册为链接服务器,如果已经注册成功,则使用sp_addlinkedsrvlogin Far_MDB,false,null,sa,*,注册login帐号,然后你就可以执行一个Sql语句,试试看看是否可以从链接服务器中操作数据了,例如: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 Server数据库无论是从桌面Windows电脑上还是在Pocket PC设备上访问SQL Server数据库,首先都需要建立数据库连接。使用Visual Studio 2005开发桌面Windows应用时,开发人员可以从服务器资源管理器中拖拉数据表到窗体上,但是.NET Compact Framework不支持数据设计器。这意味着开发人员需要编程实现建立数据库连接。.NET Compact Framework的System.Data.SqlClient命名空间同样不支持跨服务器的事务和连接池。设计移动应用解决方案时,应该将数据库事务限制发生在服务器上的单独数据库中。因为.NET Compact Framework的System.Data.SqlClient命名空间不支持数据库连接池,所以在Pocket PC设备上建立SQL Server数据库连接时会产生一定的延时。在桌面Windows编程中,要求尽可能缩短保持与数据库连接的时间以及减少数据库连接次数。而在开发Pocket PC上的数据库应用程序时,最佳策略是提前创建数据库连接,并尽量在整个应用程序生命周期内保持数据库连接来减少连接次数。下面通过设计开发一个用途广泛的Pocket PC数据库应用程序,介绍如何访问服务器端数据。这个Pocket PC应用程序需要引用System.Data.Common、System.Xml和System.Data.SqlClient命名空间。如何用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 bset b.列A=a.列Afrom openrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)as a inner join 本地表 bon a.column1=b.column1-openquery用法需要创建一个连接-首先创建一个连接创建链接服务器exec sp_addlinkedserver ITSV,SQLOLEDB,远程服务器名或ip地址-查询select *FROM openquery(ITSV, SELECT * FROM 数据库.dbo.表名)-把本地表导入远程表insert openque
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高考语文总复习文言文专题-教师版-古代文化常识(专项训练)
- 防汛知识培训的意义
- 防汛知识专项培训课件
- 防汛业务知识培训会议课件
- 房地产产业活动方案
- 数码产品品牌宣传计划
- 线上购买行为研究-洞察及研究
- 食用菌菌种买卖合同-买卖合同4篇
- 中秋节主题活动策划方案演示模板
- 出租屋承包合同协议书与出租屋租赁合同6篇
- 2025年金属非金属矿山(露天矿山)安全生产试题题及答案
- 县级医院医疗质量控制方案实施细则
- 2025菊花批发合同
- 短视频制作服务协议合同
- 2025年中国电信面试题预测及备考要点
- 福建省2025-2026学年福州市高三年级第一次质量检测物理
- 高职开学第一课教案设计
- 2025年全国“质量月”企业员工全面质量管理知识答题(含答案)
- 2025低空经济发展及关键技术概况报告
- 2025年中考历史(山西卷)真题评析
- 全国青少年科技辅导员专业水平认证笔试考题
评论
0/150
提交评论