方法一:用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 跨服务器查询数据的更多相关文章

  1. SQL跨服务器查询数据库

    有时候一个项目需要用到两个数据库或多个数据库而且这些数据库在不同的服务器上时,就需要通过跨服务器查找数据 在A服务器的数据库a查询服务器B的数据库b 的bb表 假如服务器B的IP地址为:10.0.22 ...

  2. sql 跨服务器查询

    创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin ...

  3. SQl 跨服务器查询脚本示例

    1.采用OPENDATASOURCE select top 10 *from OPENDATASOURCE('SQLOLEDB','Data Source=IP地址;User ID=连接用户名称;Pa ...

  4. PL/SQL跨库查询数据

    步骤一:找到Database links  (新建) 步骤二:正确填写完对应信息 (应用) : 步骤三:执行PL/SQL语句(完成) select * from tablename@MYDATA 注释 ...

  5. 跨服务器导入数据SQL语句及其问题解决方案

    --跨服务器导入数据SQL语句: insert into [shsw_manager].[dbo].[Station_List]select * from OPENROWSET('SQLOLEDB', ...

  6. 缓存一致性和跨服务器查询的数据异构解决方案canal

    当你的项目数据量上去了之后,通常会遇到两种情况,第一种情况应是最大可能的使用cache来对抗上层的高并发,第二种情况同样也是需要使用分库 分表对抗上层的高并发...逼逼逼起来容易,做起来并不那么乐观, ...

  7. SQL Server跨服务器查询的实现方法,OpenDataSource

    SQL Server跨服务器查询的方法我们经常需要用到,下面就为您介绍两种SQL Server跨服务器查询的方法,如果您感兴趣的话,不妨一看. SQL Server跨服务器查询方法一:用OPENDAT ...

  8. sqlserver 两 表 数据 复制 (附加 跨服务器 查询的方法)

    一 : 这个sql 语句 可以快速的 将 一 个旧表 中的指定字段的数据 复制到 另一个新表的指定字段中 insert into dbo.Customer ( CustomerId , Custome ...

  9. 跨服务器查询sql语句样例

    若2个数据库在同一台机器上:insert into DataBase_A..Table1(col1,col2,col3----)select col11,col22,col33-- from Data ...

随机推荐

  1. WP8_定位新页面中listbox的某项

    即将跳转到页面A,在页面A中有一个listbox,在跳转的时候,接收参数,自动选中listbox中的某项 /// <summary> /// 接收参数,定位当前选中项 /// </s ...

  2. hdu 4628 动态规划

    思路:首先就是状态压缩,然后判断哪些状态是回文串.最后就是动态方程:dp[i]=min(dp[i],dp[j]+1).这个方程得前提条件是状态(j-i)为回文串. #include<iostre ...

  3. JScript_Test

    Hello SyntaxHighlighter function helloSyntaxHighlighter() { return "hi!"; } function hello ...

  4. Android ListView使用(非原创)

    1.ListView:它以列表的形式展示具体要显示的内容,并且能够根据数据的长度自适应屏幕显示 <LinearLayout xmlns:android="http://schemas. ...

  5. asp.net textbox控件基础

    asp.net有两种控件,一种是html控件,一种是asp控件,在说textbox控件之前,先看看按钮的两个命令oncommand和onclick.每次点击按钮后,都会提交命令,但是程序会首先执行Pa ...

  6. linux视频学习4(crontab和进程)

    1 . crontab定时任务: 任务调度: 系统在某个时间执行的特定的命令. 分类: 1.系统工作.2.个别的用户工作. 设置任务调度文件: /etc/crontab 1.crontab -e  : ...

  7. String,StringBuffer,StringBuilder个人认为较重要的区别

        今天在整理不可变对象知识点时,突然看到了String,StringBuffer,StringBuilder三者的区别,这里就挑一些我认为比较重要的点记录一下,方便日后查看.     Strin ...

  8. SpringMVC 控制器默认支持GET和POST两种方式

    在SpringMVC的controller中,@RequestMapping只写路径,不包含RequetMethod.GET和RequetMethod.POST,HttpServletRequest的 ...

  9. 视频聊天 Demo

    ESFramework Demo -- 入门Demo,简单的即时通讯系统(附源码) 是基于ESFramework实现的一个简单的文字聊天demo,现在,我们将在这个demo的基础上,使用OMCS为其增 ...

  10. 2393Cirno的完美算数教室 容斥

    2393: Cirno的完美算数教室 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 652  Solved: 389[Submit][Status][ ...