`
izuoyan
  • 浏览: 9222910 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

跨服务器进行数据查询中出现的问题

阅读更多

在最近的项目中由于出帐和计费的数据不在同一台服务器上,需要用到跨库查询.

现把查询语句给出

select * into tmptable from openquery([demo],''select * from demoinfo.dbo.出帐(''200812''')''),

这里需要对远程服务器进行注册

注册方式如下:

Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver
@server='DBVIP',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='Server2' --要访问的服务器


EXEC sp_addlinkedsrvlogin
'DBVIP', --被访问的服务器别名
'false',
NULL,
'sa', --帐号
'thankyoubobby' --密码


Select * from DBVIP.pubs.dbo.orders

如果你要访问的远程服务器不能使用机器名进行访问的话,那么需要使用ip地址替换Server2来实现.

参考资料:http://www.cnitblog.com/MartinYao/archive/2007/04/12/25647.aspx

在具体使用中

SELECT * FROM OPENQUERY(demo ,'select * from tbdemo' )

UPDATE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE id = 101')
SET name = 'hello';

INSERT OPENQUERY (demo, 'SELECT id FROM tbdemo')
VALUES ('hello');

DELETE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE name = ''hello''');

如果数据量比较小,那么ok,没有什么事了.如果数据量比较大,查询时间超长,报如下错误:

已以用户 SQLDATA 的身份执行。 链接服务器 "demo" 的 OLE DB 访问接口 "SQLNCLI" 报错。由于达到了资源限制,提供程序终止了执行。 [SQLSTATE 42000] (错误 7399) 无法对链接服务器 "demo" 的 OLE DB 访问接口 "SQLNCLI" 执行查询"''select * from demoinfo.dbo.出帐(''200812''')"。 [SQLSTATE 42000] (错误 7320). 该步骤失败。

Server:Msg 7399, Level 16, State 1, Line 1 OLE DB provider 'SQLOLEDB' reported an error.Execution terminated by the provider because a resource limit was reached.[OLE/DB provider returned message:Timeout expired]

那么首先在查询中使用DBCC TRACEON (7300, 3604) 语句,然后执行查询,则您可能会在错误信息中看到其他信息

我在使用了之后返回的错误信息是:

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
链接服务器"demo"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "查询超时已过期"。
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "demo" 的 OLE DB 访问接口 "SQLNCLI" 报错。由于达到了资源限制,提供程序终止了执行。
消息 7320,级别 16,状态 2,第 1 行
无法对链接服务器 "demo" 的 OLE DB 访问接口 "SQLNCLI" 执行查询''select * from demoinfo.dbo.出帐(''200812''')"。

则对超时时间进行修改.

使用以下代码将远程查询超时值设置为 0(无限等待):
sp_configure 'remote query timeout', 0
go
reconfigure with override
go

参考资料:http://support.microsoft.com/kb/314530

分享到:
评论

相关推荐

    跨服务器复制SQL表中数据 跨服务器复制SQL表中数据

    ### 跨服务器复制SQL表中数据 在数据库管理与维护工作中,经常需要处理的数据操作之一就是数据迁移或复制。特别是当涉及到跨服务器的数据同步时,这项任务变得更具挑战性。本文将详细介绍如何通过SQL Server中的...

    thinkPHP5解决不同服务器不同数据库表关联查询问题

    在这种情况下,如何在thinkPHP5框架下实现跨服务器、跨数据库的表关联查询便成为了一个值得探讨的问题。 #### 一、背景介绍 假设存在两台服务器:服务器A和服务器B,其中服务器A部署了数据库A,主要用于存储用户...

    SQLSERVER中实现跨服务器数据访问

    SQLSERVER中实现跨服务器数据访问的几个方法

    sql跨服务器查询的语句

    sql关于跨服务器进行数据操作的例子,常用

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

    综上所述,JAVA实现跨数据库服务器数据导出导入功能涉及数据库连接、数据获取、数据转换、数据导入等多个环节,需要充分利用JDBC和其他相关库,同时关注性能和安全性。通过精心设计的JAVA程序,可以高效、安全地完成...

    SQL 跨服务器查询

    跨服务器查询在多服务器环境和分布式系统中非常有用,可以方便地集成来自多个数据源的数据,执行复杂的分析和报告任务,或者在不同的数据库之间进行数据迁移。然而,这种查询可能会增加网络负载,因此在实际应用中应...

    Sql Server2000跨服务器查询数据库

    在SQL Server 2000环境中进行跨服务器查询是一项非常实用的功能,它允许用户在不同的服务器之间执行数据操作,包括查询、导入导出以及更新等。下面将详细介绍如何实现这些功能。 #### 创建链接服务器 在SQL Server...

    SQL跨服务器操作

    SQL跨服务器操作是数据库管理中的一个重要技术,允许用户在不同的数据库系统之间执行查询和数据操作。本文主要聚焦于如何在MSSQL中进行跨服务器操作,涉及到的数据源包括MSSQL、Excel、DB2、Oracle和XML等。关键在于...

    跨服务器操作数据库

    跨服务器操作数据库 来进行数据的查询删除修改

    [SQLSERVER]跨服务器查询[定义].pdf

    在SQL Server中,跨服务器查询是指从一个服务器上的数据库中查询另一个服务器上的数据库的数据。这种功能使得管理员和开发者能够整合分布在不同服务器上的数据,进行数据分析或数据同步。本文将详细介绍两种主要的跨...

    thinkPHP5解决不同服务器不同数据库表关联查询问题.docx

    本篇文章将深入探讨如何在ThinkPHP5中解决跨服务器、跨数据库的表关联查询问题。 首先,我们要理解在MySQL中,原生的SQL语法并不支持跨服务器的连表查询。然而,ThinkPHP5提供了灵活的数据库连接管理,使得我们可以...

    跨数据查询

    本文档将介绍 SQL 跨服务器数据库查询、ORACLE 跨数据查询、SQL 与 ORACLE 间查询等多种跨数据查询技术。 一、ORACLE 跨数据查询 ORACLE 跨数据查询是指在 ORACLE 数据库之间进行数据查询和交互的过程。要实现 ...

    mssql跨服务器连接脚本

    `OPENROWSET` 和 `OPENQUERY` 是另外两种跨服务器查询的方法,它们不需要显式创建链接服务器,但同样可以实现跨服务器的数据访问。 ##### 3.1 使用 OPENROWSET `OPENROWSET` 主要用于从其他数据源返回结果集,例如...

    sqlserver 不同服务器数据库之间的数据操作

    创建链接服务器是实现跨服务器数据操作的基础步骤。首先,需要在本地服务器上执行`sp_addlinkedserver`存储过程来创建一个指向远程服务器的链接。这里提供了一个基本的例子: ```sql exec sp_addlinkedserver @...

    跨服务器数据库访问

    "跨服务器数据库访问" 跨服务器数据库访问是指从一个数据库查询其他...跨服务器数据库访问需要创建链接服务器、启动MSDTC服务、打开135端口、解除SQL阻止等步骤,最后可以使用SELECT语句查询远程数据库中的数据。

    跨服务器建立视图sql

    为了方便地实现这一需求,可以采用跨服务器查询的方式来构建视图。本文将详细介绍如何通过SQL语句实现跨服务器建立视图的功能,并提供具体的步骤及示例。 #### 二、基础知识概述 1. **链接服务器(Linked Server)...

    canal之-缓存一致性和跨服务器查询的数据异构解决方案.docx

    canal 之缓存一致性和跨服务器查询的数据异构解决方案 ...canal 之缓存一致性和跨服务器查询的数据异构解决方案提供了一种高效的解决方案,能够解决项目中遇到的缓存一致性和跨服务器查询的问题。

    跨服务器增量同步mysql表数据的shell实现

    这个脚本实现了跨服务器增量同步mysql数据的功能,可以同步多个表。 在使用这个脚本的时候需要注意有修改的地方就是源表配置、目标表配置需要修改成自己的服务器和登录mysql数据库的用户名和密码。基础配置中需要...

Global site tag (gtag.js) - Google Analytics