在项目中,经常会遇到一个数据库访问另一个数据库,【CNVFERPDB】为服务器名,【CE3】为库名

 SELECT Dtl.*
FROM CNVFERPDB. CE3.ce3.ZTLE0125 Dtl
INNER JOIN CNVFERPDB.CE3.ce3.ZTLE0124 Mst
ON Dtl.RECVSUPPNO = Mst.RECVSUPPNO AND Dtl.MANDT = Mst.MANDT
WHERE Mst.MANDT = '' and Dtl.BRANDCODE='MD'

上面的方式是通过服务器名和库名直接访问,这样有多次连接另一个服务器,执行速度会很慢

可以换做下面的形式,执行速度将得到提升:

 SELECT *
FROM OPENQUERY (CNVFERPDB
,
'
SELECT Dtl.*
FROM CE3.ce3.ZTLE0125 Dtl
INNER JOIN CE3.ce3.ZTLE0124 Mst
ON Dtl.RECVSUPPNO = Mst.RECVSUPPNO AND Dtl.MANDT = Mst.MANDT
WHERE Mst.MANDT = '''' and Dtl.BRANDCODE=''MD''
'
)
OPENQUERY ( linked_server ,'query' )
使用注意事项:
  linked_server 
    表示链接服务器名称的标识符。
  'query'
    在链接服务器中执行的查询字符串。 该字符串的最大长度为 8 KB。 补充
 declare @Day VARCHAR(10)=CONVERT(CHAR(8),DATEADD(DAY,-1,GETDATE()),112)

 --set @Day='20140605'

 IF EXISTS(select * from AppLog where Dates=@Day)
return declare @sql VARCHAR(2000)='select *
INTO #temp
from openquery
([CNSASPLOGDB01],
''
select
A.ProgramId
,'''''+@Day+''''' AS Dates
,COUNT(Duration) as Count
,SUM(CAST(Duration AS DECIMAL(12,3)))/1000 AS SumTime
,AVG(CAST(Duration AS DECIMAL(12,3)))/1000 as AvgTime
,MAX(CAST(Duration AS DECIMAL(12,3)))/1000 as MaxTime
from
(
select * from LogCSLK01.dbo.AppLog_'+@Day+' with(nolock)
union
select * from LogCSLK02.dbo.AppLog_'+@Day+' with(nolock)
union
select * from LogCSLK03.dbo.AppLog_'+@Day+' with(nolock)
) A
group by A.ProgramId
''
) insert into AppLog
select *
from #temp drop table #temp
'
--print @sql exec(@sql)

SQL Server如何使用OPENQUERY访问另一个SQL Server的更多相关文章

  1. 如何使用OPENQUERY访问另一个SQL Server

    原文:如何使用OPENQUERY访问另一个SQL Server 在项目中,经常会遇到一个数据库访问另一个数据库,[CNVFERPDB]为服务器名,[CE3]为库名 SELECT Dtl.* FROM ...

  2. sql---如何把sql查询出来的结果当做另一个sql的条件查询,1、语句2、with as

    '; -- table2 的 name 作为 table1的条件 select * from table1 where name in (select name from table2) --如果有多 ...

  3. sql server 数据库创建链接服务器访问另外一个sql server 数据库

    继上篇在sql server中创建链接服务器访问oracle数据库:http://www.cnblogs.com/527289276qq/p/4770379.html 本文介绍在sql server中 ...

  4. weblogic管理2 - 创建并启动一个managed server

    创建一个managed server. 1.  进入网页console管理页面,如:http://10.100.25.14:7001/console     , 先点击->服务器 (红色标记框) ...

  5. 通过 SQL Server 视图访问另一个数据库服务器表的方法

    今天项目经理跑过来对我大吼大叫说什么之前安排让我做一大堆接口为什么没做,我直接火了,之前明明没有这个事情…… 不过事情还要解决,好在两个项目都是用的sqlserver,可以通过跨数据库视图来快速解决问 ...

  6. 教你发布Silverlight Bussiness Application(SQL Server 登录,局域网访问,以及使用ArcGIS Server服务需要注意的问题)

    原文:教你发布Silverlight Bussiness Application(SQL Server 登录,局域网访问,以及使用ArcGIS Server服务需要注意的问题) 之前发布过Silver ...

  7. (转)SQLServer_十步优化SQL Server中的数据访问 二

    原文地址:http://tech.it168.com/a2009/1125/814/000000814758_all.shtml 第五步:识别低效TSQL,采用最佳实践重构和应用TSQL 由于每个程序 ...

  8. 无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法

    无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问.)” (Microsoft SQL Server,错误: 5120)的解决方法   问题描述: 在附加数据库到sql server时,附 ...

  9. [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝

    一般连接sql数据库,IP_connstr="driver={SQL Server}; server=127.0.0.1;database=数据库名字;uid=sa;pwd=密码" ...

随机推荐

  1. postman--基本使用2

    本文转自:http://blog.csdn.net/u013613428/article/details/51557804 最近需要测试产品中的REST API,无意中发现了PostMan这个chro ...

  2. Android Java使用JavaMail API发送和接收邮件的代码示例

    JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的j ...

  3. POJ 3624 Charm Bracelet 0-1背包

    传送门:http://poj.org/problem?id=3624 题目大意:XXX去珠宝店,她需要N件首饰,能带的首饰总重量不超过M,要求不超过M的情况下,使首饰的魔力值(D)最大. 0-1背包入 ...

  4. 从Lua调用C

    从Lua调用C: 方式:C函数从栈中获取函数參数(第一个參数总是局部栈的索引1),将结果压入栈中,C函数须要返回结果数量. 每一个函数都有自己的局部私有栈 样例: static int l_sin(l ...

  5. [乐意黎原创] eclipse Kepler Selected SVN connector library is not available or cannot be loaded

    问题描写叙述:已经安装了subversive,可是在从SCM导入maven项目时.还是提示报错(如标题),依据报错原因发如今Team>SVN中确实没有svn连接器. 折腾了半天, 硬是没有结果. ...

  6. IOS的后台执行

    写在前面给大家推荐一个不错的站点  www.joblai.com 本文章由央广传媒开发部 冯宝瑞整理.哈哈 http://www.cocoachina.com/bbs/read.php? tid=14 ...

  7. ios开发抽屉效果的封装使用

    #import "DragerViewController.h" #define screenW [UIScreen mainScreen].bounds.size.width @ ...

  8. Android 添加常驻图标到状态栏

    / * * 如果没有从状态栏中删除ICON,且继续调用addIconToStatusbar,则不会有任何变化.如果将notification中的resId设置不同的图标,则会显示不同的图标 * / p ...

  9. 200行代码,7个对象——让你了解ASP.NET Core框架的本质

    原文:200行代码,7个对象--让你了解ASP.NET Core框架的本质 2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为<ASP.NET Core框架揭秘&g ...

  10. request与response对象详述

    request与response对象. 1. request代表请求对象 response代表的响应对象. 学习它们我们可以操作http请求与响应. 2.request,response体系结构. 在 ...