如何使用OPENQUERY访问另一个SQL Server
原文:如何使用OPENQUERY访问另一个SQL Server
在项目中,经常会遇到一个数据库访问另一个数据库,【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)
如何使用OPENQUERY访问另一个SQL Server的更多相关文章
- SQL Server如何使用OPENQUERY访问另一个SQL Server
在项目中,经常会遇到一个数据库访问另一个数据库,[CNVFERPDB]为服务器名,[CE3]为库名 SELECT Dtl.* FROM CNVFERPDB. CE3.ce3.ZTLE0125 Dtl ...
- sql server 数据库创建链接服务器访问另外一个sql server 数据库
继上篇在sql server中创建链接服务器访问oracle数据库:http://www.cnblogs.com/527289276qq/p/4770379.html 本文介绍在sql server中 ...
- 无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法
无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问.)” (Microsoft SQL Server,错误: 5120)的解决方法 问题描述: 在附加数据库到sql server时,附 ...
- SQLServer访问WebServices提示:SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
问题描述 在数据库中调用webservices, 提示:SQLServer访问WebServices提示:SQL Server 阻止了对组件 'Ole Automation Procedures' 的 ...
- 微软MVP攻略 (如何成为MVP?一个SQL Server MVP的经验之谈)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 初衷 什么是微软MVP? 成为微软MVP的条件? 如何成为微软MVP? (一) 申请时间划分 (二) 前期准备 (三) ...
- [转]如何拷贝一个 SQL Server 的表
这篇短文将介绍几种拷贝 SQL Server 表的方法.第一种方式是最简单的在同一个数据库里将表拷贝到另外一个表.你需要记住的是,拷贝表的时候并不会拷贝表的约束和索引.下面是代码模板和简单的使用方法: ...
- 【转】微软MVP攻略 (如何成为MVP?一个SQL Server MVP的经验之谈)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 初衷 什么是微软MVP? 成为微软MVP的条件? 如何成为微软MVP? (一) 申请时间划分 (二) 前期准备 (三) ...
- 一个SQL Server 2008 R2 死锁的问题解决
问题场景:在客户那碰到一个操作卡死的现象 问题解决: 1.如何挂钩是死锁问题:通过代码跟踪,发现是指执行一个SQL语句超时,因此猜想可能是表锁住了 2.如果确认是思索问题:通过SQL发现死锁,以下是相 ...
- vs2012中使用localdb实例还原一个sql server 2008r2版本的数据库
use localdb sometime is easy than sql server ,and always use visual studio make you stupid. vs2012中还 ...
随机推荐
- 从源码看Android中sqlite是怎么读DB的(转)
执行query 执行SQLiteDatabase类中query系列函数时,只会构造查询信息,不会执行查询. (query的源码追踪路径) 执行move(里面的fillwindow是真正打开文件句柄并分 ...
- Java设计模式(七)策略模式 模板模式
(十三)策略模式 策略图案限定了多个封装算法,该算法可以相互替换包.法的客户.借用还有一位大神的样例. interface ICalculator{ public int calculate(Stri ...
- Codeforces 135A-Replacement(思维)
A. Replacement time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- JS动态获取浏览器宽度和高度
$(window).resize(function() { var width = $(this).width(); var height = $(this).height(); });
- 经Apache将tomcat转用80port这两个域名
一般用tomcat通告Java web项目采用www.xxx.com:8080/appname/xxxservlet要访问一个简单的服务,这会'暴漏'应用程序名称(当然,你也可以摆脱),它看起来并不规 ...
- Java和Flex积分误差(一个)
1.错误叙述性说明 at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency( ...
- 关于微软公有云Azure会计标准
前几年.中国的云计算项目往往搞成了房地产项目.大搞形"象project",没有实质性的内容.云计算老总成了房地产大老板,国内业界是在胡闹! 现今,世纪互联与微软(中国)联手搞公有云 ...
- Swift中文教程(一)--欢迎来到Swift的世界
原文:Swift中文教程(一)--欢迎来到Swift的世界 Apple凌晨时在WWDC发布了Swift编程语言,语法简介我很喜欢,市面上没有完整的中文教程,我在ibooks里面下载了英文原版,现在开始 ...
- kobox : key_waitqueue.c -v1 如何内核线程,如何使用等待队列
平台:TQ2440 按键驱动 (1)在init中创建一个内核线程作为等待队列的处理函数,该内核线程是一个while(1)死循环,一直检測等待队列的触发条件 DECLARE_WAIT_QUEUE_HEA ...
- 使用myeclipse将Javaj项目标ar套餐邂逅classnotfound解决问题的方法
做一件事的今天,该Java项目打包成jar文件.折腾2小时,最终运行jar文件报告classnotfound异常,我觉得程序写入依赖jar包不玩成,但是,我手动添加.或不.网上找了很多办法.或不.后. ...