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 ...
随机推荐
- 微软职位内部推荐-Senior Dev Lead - SharePoint
微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ...
- 11.11 Daily Scrum
Today's tasks Tomorrow's tasks 丁辛 餐厅列表事件处理 餐厅列表事件处理 李承晗 实现指定地点搜索 整合已经完成的部 ...
- Iterative Quantization,ITQ
Abstract 针对大规模的图像检索问题,论文提出了一个高效的ITQ算法.该算法先将中心化后的数据映射到超立方体的顶点上,再通过优化过程寻找一个旋转矩阵,使得数据点经过旋转后,与超立方体的顶点数据具 ...
- 回忆--RYU流量监控
RYU流量监控 前言 Ryu book上的一个流量监控的应用,相对比较好看懂 实验代码 github源码 from ryu.app import simple_switch_13 from ryu.c ...
- 蜗牛慢慢爬 LeetCode 23. Merge k Sorted Lists [Difficulty: Hard]
题目 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity ...
- K8S 使用NFS 创建PV和PVC的例子 学习From https://blog.csdn.net/xts_huangxin/article/details/51494472
1. 获取资料 网址: https://blog.csdn.net/xts_huangxin/article/details/51494472 感谢原作者 这里面 按照自己的机器情况进行了学习模仿 ...
- Pathwalks CodeForces - 960F(主席树 || 树状数组)
题意: 求树上最长上升路径 解析: 树状数组版: 998ms edge[u][w] 代表以u为一条路的终点的小于w的最长路径的路的条数 · 那么edge[v][w] = max(edge[u][w-1 ...
- CodeForces - 707C
C. Pythagorean Triples time limit per test 1 second memory limit per test 256 megabytes input standa ...
- IntelliJ IDEA2017 修改缓存文件的路径
IDEA的缓存文件夹.IntelliJIdea2017.1,存放着IDEA的破解密码,各个项目的缓存,默认是在C盘的用户目录下,目前有1.5G大小.现在想要把它从C盘移出. 在IDEA的安装路径下中, ...
- 【刷题】BZOJ 3944 Sum
Description Input 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 Output 一共T行,每行两个用空格分隔的数ans1,ans ...