如何使用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中还 ...
随机推荐
- UVa 699 落叶
意甲冠军:我几乎不记得的题意!.! 它是一个长坑..我们从根节点开始,留下每一步,保存横坐标1,正确的一步加上横坐标1. 那么同样的横坐标统计data值总和. 思维:我来想,这可以递归成就.上就能够算 ...
- [置顶] think in java interview-高级开发人员面试宝典(二)
从现在开始,以样题的方式一一列出各种面试题以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题. 这些题目来自于各个真实的公司,公司名 ...
- ios学习网络------4 UIWebView以三种方式中的本地数据
UIWebView这是IOS内置的浏览器.能够浏览网页,打开文档 html/htm pdf docx txt等待格文档类型. safari浏览器是通过UIWebView制作. server将 ...
- Android通过意图使用内置的音频播放器
假设实现一个音频文件的播放,那么在应用程序中提供播放音频文件功能的最简单的方式是利用内置的"Music(音乐)"应用程序的功能--即使用系统自带的或已安装好的音乐播放器来播放指定的 ...
- 关于ACM,关于CSU
原文地址:http://tieba.baidu.com/p/2432943599 前言: 即将进入研二,ACM的事情也渐渐远去,记忆终将模糊,但那段奋斗永远让人热血沸腾.开个贴讲讲ACM与中南的故事, ...
- MvcMailer通过ASP.NET MVC Razor视图和基架发送邮件
MvcMailer是一个有趣的组件,您可以使用ASP.NET MVC框架在发送邮件.很重要的是,它使用Razor视图引擎的观点作为电子邮件模板和很容易安装和使用.在本文中你将看到如何安装,设置邮件模板 ...
- PHP使用MySQL数据库
原文:PHP使用MySQL数据库 PHP使用MySQL数据库,从建立连接到结果的显示. 完整代码如下: <?php //连接MySQL $db = mysql_connect("loc ...
- 【剑指offer】堆栈推弹出序列
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26077863 剑指offer上的第22题,九度OJ上AC. 题目描写叙述: 输入两个整数序 ...
- 【百度地图API】自行获取区域经纬度的工具
原文:[百度地图API]自行获取区域经纬度的工具 摘要:上一章教大家如何建立自己的行政区域地图.这次为大家提供一个,可视化选择区域,并且能自动生成经纬度代码的工具.工具的源代码完全公开,并且做了详尽的 ...
- vs2012连接sql2008(错误类型:Could not load file or assembly)
发生错误: Sql Server2008数据库中有一个数据库. 我想ORM-Entity FrameWork技术,在自己主动了一个项目,建立一个实体类! 解决的方法: 出现上面的情况.是由于缺少了这两 ...