sql 跨服务器查询数据
方法一:用OPENDATASOURCE
[SQL SERVER] 跨服务器查询
--1 打开
exec sp_configure 'show advanced options',1 reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure SELECT * FROM
OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.0.88;User ID=sa;Password=Sa123456'
).AIS20141027173850.dbo.t_ICItem --2 关闭
exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure
exec sp_configure 'show advanced options',0 reconfigure
--下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。同样在执行前要向上面一样打开配置
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=sa;Password=sa;Extended properties=Excel 5.0')...xactions
方法二:用链接服务器
-- ---B.创建链接服务器
--exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
--exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
--exec sp_serveroption 'srv_lnk','rpc','true'
--exec sp_serveroption 'srv_lnk','rpc out','true' --这个允许调用链接服务器上的存储过程
DECLARE @serverName VARCHAR(20)
SET @serverName = '127.0.0.1'
IF NOT EXISTS ( SELECT 1
FROM master.dbo.sysservers
WHERE srvname = @serverName )
BEGIN
---用SQL命令建立与本Server的Linked Server.
EXEC sp_addlinkedserver @serverName, '', 'SQLOLEDB', '127.0.0.1'
EXEC sp_addlinkedsrvlogin @serverName, 'false', NULL, 'sa', ''
EXEC sp_serveroption @serverName, 'rpc', 'true'
EXEC sp_serveroption @serverName, 'rpc out', 'true' --这个允许调用链接服务器上的存储过程
--EXEC sp_dropserver @serverName,'droplogins' --删除链接服务器 END --调用
INSERT INTO #tmp02
EXEC [127.0.0.1].AIS20160331212903.dbo.rk_fm_proc_cg_inner @year,@month ,@deptName
方法三:用程序分别连接两个数据库实现
此方法在实际应用中比较普遍,也较简单;
其它方法:OPENROWSET、OPENQUERY
与上面的类似,不再累述。
----------------------------------
VBA中的实现也是类似的:
Function saveBeg(sheetName As String, tabName As String, fieldNames As String, sqlWhere As String) As Boolean
Dim Str_coon As String, StrSQL As String, sqlCon As String
If (connStr = "") Then
SetK3SqlConn
End If sqlCon = getOdbcConn Rem 添加Excel数据到SQLSERVER:成功
Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';Data Source =" & ThisWorkbook.FullName '//OFFICE2007
StrSQL = "INSERT into "
' StrSQL = StrSQL & " [odbc;Driver={SQL Server};" '//在空格+[:后面是固定格式
' StrSQL = StrSQL & "Server=JUST;" '//服务器名称或地址
' StrSQL = StrSQL & "Database=AIS20160331212903;" '//数据库名称
' StrSQL = StrSQL & "UID=sa;PWD=Sa123456]" '//用户名,密码]
StrSQL = StrSQL & sqlCon
StrSQL = StrSQL & "." & tabName
' StrSQL = StrSQL & " SELECT 会计期间 as FPeriodName,部门代码 as FDeptNumber FROM [" & sheetName & "$]"
StrSQL = StrSQL & " SELECT " & fieldNames & " FROM [" & sheetName & "$] where 1=1"
StrSQL = StrSQL & sqlWhere
saveBeg = ExecSqlUpdateOrInsert(StrSQL, Str_coon)
Dim d As String
d = "dd" End Function '*****************************************************************************************
'函数名: ExecSqlUpdateOrInsert
'函数功能: 执行SQL语句,一般为添加、修改删除语句
'返回值: 返回一个布尔值,是否成功完成
'参数1: StrSQL 字符类型 SQL查询语句
'参数2: Str_coon 字符类型 链接语句
'使用方法: StrSQL=“update [sheet1$i8:i9] set f1='Your Pleasure”
' StrSQL="insert into [sheet1$k2:l6] (f1,f2) values (9,'mine')"
' Bool_1= ExecSqlUpdateOrInsert(StrSQL, Str_coon)
'*****************************************************************************************
Function ExecSqlUpdateOrInsert(ByVal StrSQL As String, ByVal Str_coon As String) As Boolean '//执行SQL语句,一般为添加、修改删除语句
'On Error Resume Next ' 改变错误处理的方式。
Err.Clear
If StrSQL = "" Then ExecSqlUpdateOrInsert = False: Exit Function
Set CN = CreateObject("Adodb.Connection") '//新建一个ADO连接
Set rs = CreateObject("adodb.recordset")
CN.Open Str_coon
CN.Execute (StrSQL)
If Err.Number <> Then ExecSqlUpdateOrInsert = False Else ExecSqlUpdateOrInsert = True
CN.Close '//关闭ADO连接
Set rs = Nothing
Set CN = Nothing '//释放内存
End Function
'*****************************************************************************************
sql 跨服务器查询数据的更多相关文章
- SQL跨服务器查询数据库
有时候一个项目需要用到两个数据库或多个数据库而且这些数据库在不同的服务器上时,就需要通过跨服务器查找数据 在A服务器的数据库a查询服务器B的数据库b 的bb表 假如服务器B的IP地址为:10.0.22 ...
- sql 跨服务器查询
创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin ...
- SQl 跨服务器查询脚本示例
1.采用OPENDATASOURCE select top 10 *from OPENDATASOURCE('SQLOLEDB','Data Source=IP地址;User ID=连接用户名称;Pa ...
- PL/SQL跨库查询数据
步骤一:找到Database links (新建) 步骤二:正确填写完对应信息 (应用) : 步骤三:执行PL/SQL语句(完成) select * from tablename@MYDATA 注释 ...
- 跨服务器导入数据SQL语句及其问题解决方案
--跨服务器导入数据SQL语句: insert into [shsw_manager].[dbo].[Station_List]select * from OPENROWSET('SQLOLEDB', ...
- 缓存一致性和跨服务器查询的数据异构解决方案canal
当你的项目数据量上去了之后,通常会遇到两种情况,第一种情况应是最大可能的使用cache来对抗上层的高并发,第二种情况同样也是需要使用分库 分表对抗上层的高并发...逼逼逼起来容易,做起来并不那么乐观, ...
- SQL Server跨服务器查询的实现方法,OpenDataSource
SQL Server跨服务器查询的方法我们经常需要用到,下面就为您介绍两种SQL Server跨服务器查询的方法,如果您感兴趣的话,不妨一看. SQL Server跨服务器查询方法一:用OPENDAT ...
- sqlserver 两 表 数据 复制 (附加 跨服务器 查询的方法)
一 : 这个sql 语句 可以快速的 将 一 个旧表 中的指定字段的数据 复制到 另一个新表的指定字段中 insert into dbo.Customer ( CustomerId , Custome ...
- 跨服务器查询sql语句样例
若2个数据库在同一台机器上:insert into DataBase_A..Table1(col1,col2,col3----)select col11,col22,col33-- from Data ...
随机推荐
- 《Linux内核设计与实现》读书笔记——第一、 二章
<Linux内核设计与实现>读书笔记--第一. 二章 标签(空格分隔): 20135321余佳源 第一章 Linux内核简介 1.Unix内核特点 十分简洁:仅提供几百个系统调用并且有明确 ...
- TAC队--团队选题报告
The Art of Code--团队选题报告 一个APP项目能否被大众所接受,能否拥有受众,the most important是它的idea. 一个好的idea可以为项目带来巨大的改变 一个 独特 ...
- Activiti源码学习:ExecutionListener与TaskListener的区别
/** Callback interface to be notified of execution events like starting a process instance, * ending ...
- numpy教程
[转]CS231n课程笔记翻译:Python Numpy教程 原文链接:https://zhuanlan.zhihu.com/p/20878530 译者注:本文智能单元首发,翻译自斯坦福CS231n课 ...
- 获取所有选中框的ids值
var os = $("input[name='rec_ids[]']:checked"); var ids = []; os.each(function(i){ ids.push ...
- 两种常用文件分享方式 - 网络硬盘快速分享, 点对点的文件共享 BitTorrent Sync
普通的用户经常通过电子邮件.QQ传递等方式进行文件的分享,但是由于不同的网络环境有的时候可能会有不同的限制,所以我们就需要寻找其他的方式来替代.今天就为大家推荐两个既常用又与众不同的分享方式. 中国论 ...
- BZOJ 3174 拯救小矮人(贪心+DP)
题意 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚到肩 ...
- 【转】如何应用Query语句进行规则的语法设置?
在Altium Designer中, 设计规则通常用来定义用户的设计需求. 这些规则涵盖了设计的方方面面, 从布线宽度, 对象的安全间距,内电层的连接风格, 过孔风格等等. 设计规则不仅能在PCB设计 ...
- 扩展中国剩余定理学习笔记+模板(洛谷P4777)
题目链接: 洛谷 题目大意:求同余方程组 $x\equiv b_i(mod\ a_i)$ 的最小正整数解. $1\leq n\leq 10^5,1\leq a_i\leq 10^{12},0\leq ...
- 团队Git使用教程
团队git使用教程(不要使用IDE自带版本控制功能) 角色分配:项目观察者.项目拥有者.项目开发人员 场景:项目拥有者创建项目 1. 在当前目录新建一个git代码库 git init "te ...