--第一部分(要点)
--永久访问方式(需对访问远程数据库进行经常性操作)时设置链接数据库
Exec sp_addlinkedserver 'MyLinkServer','','SQLOLEDB','远程服务器名或ip地址'
--或:
Exec sp_addlinkedserver '远程服务器',N'SQL Server'
Exec sp_addlinkedsrvlogin 'MyLinkServer','false',null,'用户名','密码'

--返回本地服务器中定义的链接服务器列表
Exec sp_linkedservers
--返回表的字段中,其中对MSSQL而言:SRV_NAME(链接服务器的名称),SRV_DATASOURCE(与指定链接服务器对应的服务器名)

--访问表时以四部分名称形式
--查询示例
Select * From MyLinkServer.数据库名.dbo.表名

--导入示例
Select * Into 表 From MyLinkServer.数据库名.dbo.表名

--以后不再使用时删除链接服务器
Exec sp_dropserver 'MyLinkServer','droplogins'   --以用户名登录时
--或:
Exec sp_dropserver 'MyLinkServer'   --未以用户名登录时

--连接远程/局域网数据(OpenRowSet/OpenQuery/OpenDataSource)
--1、OpenRowSet
--查询示例
Select * From OpenRowSet('SQLOLEDB','SQL服务器名';'用户名';'密码',数据库名.dbo.表名)
--生成本地表
Select * Into 表 From OpenRowSet('SQLOLEDB','SQL服务器名';'用户名';'密码',数据库名.dbo.表名)
--把本地表导入远程表
Insert OpenRowSet('SQLOLEDB','SQL服务器名';'用户名';'密码',数据库名.dbo.表名)
Select *From 本地表
--更新本地表
Update b
Set b.列A=a.列A
From OpenRowSet('SQLOLEDB','SQL服务器名';'用户名';'密码',数据库名.dbo.表名) As a Inner Join 本地表 b
On a.column1=b.column1

--OpenQuery用法需要创建一个连接
--首先创建一个连接创建链接服务器
Exec sp_addlinkedserver 'MyLinkServer','','SQLOLEDB','远程服务器名或IP'
--查询
Select * From OpenQuery(MyLinkServer,'Select * From 数据库.dbo.表名')
--把本地表导入远程表
Insert OpenQuery(MyLinkServer,'Select * From 数据库.dbo.表名')
Select * From 本地表
--更新本地表
Update b
Set b.列B=a.列B
From OpenQuery(MyLinkServer,'Select * From 数据库.dbo.表名') As a
Inner Join 本地表 b On a.列A=b.列A

--3、OpenDataSource
Select * From OpenDataSource('SQLOLEDB','Data Source=远程服务器名或IP;User ID=登陆名;Password=密码').test.dbo.roy_ta
--把本地表导入远程表
Insert OpenDataSource('SQLOLEDB','Data Source=远程服务器名或IP;User ID=登陆名;Password=密码').数据库.dbo.表名
Select * From 本地表

--第二部分(实际示例)
--OpenRowSet使用OLEDB的一些例子
Select * From OpenRowSet('SQLOLEDB','Server=(local);PWD=***;UID=sa;','Select * From TB.dbo.school') As t
Select * From OpenRowSet('SQLOLEDB','Server=(local);PWD=***;UID=sa;',TB.dbo.school) As t
Select * From OpenRowSet('SQLOLEDB','Server=(local);Trusted_Connection=yes;',TB.dbo.school) As t
Select * From OpenRowSet('SQLOLEDB','(local)';'sa';'***','Select * From TB.dbo.school') As t
Select * From OpenRowSet('SQLOLEDB','(local)';'sa';'***',TB.dbo.school) As t
Select * From OpenRowSet('SQLOLEDB','(local)';'sa';'***','Select school.id As id1,people.id As id2 From TB.dbo.school Inner Join TB.dbo.people On school.id=people.id') As t

--OpenRowSet使用SQLNCLI的一些例子(SQLNCLI在SqlServer2005以上才能使用)
Select * From OpenRowSet('SQLNCLI','(local)';'sa';'***','Select * From TB.dbo.school') As t
Select * From OpenRowSet('SQLNCLI','Server=(local);Trusted_Connection=yes;','Select * From TB.dbo.school') As t
Select * From OpenRowSet('SQLNCLI','Server=(local);UID=sa;PWD=***;','Select * From TB.dbo.school') As t
Select * From OpenRowSet('SQLNCLI','Server=(local);UID=sa;PWD=***;',TB.dbo.school) As t
Select * From OpenRowSet('SQLNCLI','Server=(local);UID=sa;PWD=***;DataBase=TB','Select * From dbo.school') As t

--OpenRowSet其他使用
Insert OpenRowSet('SQLNCLI','Server=(local);Trusted_Connection=yes;','Select name From TB.dbo.school Where id=1') Values('ghjkl') /*要不要Where都一样,插入一行*/
Update OpenRowSet('SQLNCLI','Server=(local);Trusted_Connection=yes;','Select name From TB.dbo.school Where id=1') Set name='kkkkkk'
Delete From OpenRowSet('SQLNCLI','Server=(local);Trusted_Connection=yes;','Select name From TB.dbo.school Where id=1')

--OpenDataSource使用SQLNCLI的一些例子
Select * From OpenDataSource('SQLNCLI','Server=(local);UID=sa;PWD=***;').TB.dbo.school As t
Select * From OpenDataSource('SQLNCLI','Server=(local);UID=sa;PWD=***;DataBase=TB').TB.dbo.school As t

--OpenDataSource使用OLEDB的例子
Select * From OpenDataSource('SQLOLEDB','Server=(local);Trusted_Connection=yes;').TB.dbo.school As t

--OpenDataSource其他使用
Insert OpenDataSource('SQLNCLI','Server=(local);Trusted_Connection=yes;').TB.dbo.school(name) Values('ghjkl') /*要不要Where都一样,插入一行*/
Update OpenDataSource('SQLNCLI','Server=(local);Trusted_Connection=yes;').TB.dbo.school Set name='kkkkkk'
Delete From OpenDataSource('SQLNCLI','Server=(local);Trusted_Connection=yes;').TB.dbo.school Where id=1

--OpenQuery使用OLEDB的一些例子
Exec sp_addlinkedserver 'MyLinkServer','','SQLOLEDB','(local)'
Exec sp_addlinkedsrvlogin 'MyLinkServer','false',null,'sa','***'
Select * From OpenQuery(MyLinkServer, 'Select *  From TB.dbo.school')

--OpenQuery使用SQLNCLI的一些例子
Exec sp_addlinkedserver 'MyLinkServerA','','SQLNCLI','(local)'
Exec sp_addlinkedsrvlogin 'MyLinkServerA','false',null,'sa','***'
Select * From OpenQuery(MyLinkServerA,'Select *  From TB.dbo.school')

--OpenQuery其他使用
Insert OpenQuery(MyLinkServerA,'Select name From TB.dbo.school Where id=1') Values('ghjkl')  /*要不要Where都一样,插入一行*/
Update OpenQuery(MyLinkServerA,'Select name From TB.dbo.school Where id=1') Set name='kkkkkk'
Delete OpenQuery(MyLinkServerA,'Select name From TB.dbo.school Where id=1')

MSSqlServer访问远程数据库的更多相关文章

  1. 【SQLServer】使用T-SQL访问远程数据库:openrowset 和 openquery 以及连接服务器的创建

    █ 启用/关闭Ad Hoc Distributed QueriesAd Hoc Distributed Queries服务默认是关闭的,要使用openrowset 和 openquery访问远程数据库 ...

  2. SQL SERVER 导入、导出数据到Exce(使用OpenRowset,、OpenDataSource函数)以及访问远程数据库(openrowset/opendatasource/openquery)

    启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安 ...

  3. DB2 编目并访问远程数据库

    之后将逐步对项目上的DB2相关经验做个总结,梳理一下知识结构. 要远程操作数据库,首先要进行编目,分三个步骤: 1. 在客户端建立服务器端数据库的节点,编目远程节点. 格式如下: 1. CATALOG ...

  4. mORMot访问远程数据库

    mORMot访问远程数据库 mORMot中提供了TOleDBJetConnectionProperties类来处理Access的mdb数据库的访问,自带线程池.通过TSQLDBServerHttpAp ...

  5. T-SQL - 访问远程数据库并对其数据表进行操作

    一.概述 很多时候我们需要在.NET应用程序中使用一条SQL语句来访问来自不同服务器.不同数据库中的不同的表,实现方法有很多.我们可以在.NET应用程序中建立数据访问层,使用ADO.NET Entit ...

  6. 存储过程使用表变量或临时表代替游标Fetch实例,访问远程数据库

    定义表变量是可以直接操作在内存中的数据,比较快.临时表在大数据量时会比游标使用的资源少.还是要看具体情况了.也有可能在实际优化过程中相互替换呢. 留作记忆的代码如下: if object_id('te ...

  7. 在T-SQL中访问远程数据库(openrowset、opendatasource、openquery)

    1.  启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前要先启用Ad Hoc Distributed Queries服务,因为这个服 ...

  8. 配置yii访问远程数据库

    1.将hdp002的数据库放到hdp004后,发现yii出现找不到表messages的迹象.用hdp002远程登录hdp004后发现,原来是hdp004没有授权给hdp002,用下面的sql语句即可: ...

  9. 在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)

    1.启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务 ...

随机推荐

  1. 2、Vue实战-配置篇-npm配置

    引言: 如果刚开始使用 vue 并不了解 nodejs.npm 相关知识可以看我上一篇的实践,快速入门了解实战知识树. Vue实战-入门篇 上篇反思: 1.新的关注点:开发 vue 模板.如何使用本地 ...

  2. C++读书笔记

    C与C++的不同点 C++在struct,union中定义的函数叫成员函数,在class中定义的数据叫数据成员 C++引入了三个存取权限的关键字:public,protected,private pu ...

  3. Java入门 - 高级教程 - 06.邮件收发

    原文地址:http://www.work100.net/training/java-email.html 更多教程:光束云 - 免费课程 邮件收发 序号 文内章节 视频 1 概述 2 发送一封简单的邮 ...

  4. DSSA特定领域软件体系结构

    一.何为DSSA 特定领域软件架构(Domain Specific Software Architecture,DSSA)是一种有效实现特定领域软件重用的手段.简单地说,DSSA就是在一个特定应用领域 ...

  5. Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  6. python算法学习总结

    数据结构一维: 基础:数组array(string),链表Linked List 高级:栈stack,队列queue,双端队列deque,集合set,映射map(hash or map), etc二维 ...

  7. 使用Route Prefix 使用属性路由 精通ASP-NET-MVC-5-弗瑞曼

  8. Go的切片:长度和容量

    虽然说 Go 的语法在很大程度上和 PHP 很像,但 PHP 中却是没有"切片"这个概念的,在学习的过程中也遇到了一些困惑,遂做此笔记. 困惑1:使用 append 函数为切片追加 ...

  9. Windows中安装Linux子系统的详细步骤

    早就听说Windows中可以安装Linux子系统,体验了一下,感觉还是不错的,下面直接开始安装和配置步骤吧! 开启Windows中的配置 首先开启开发者模式 打开"所有设置"进入& ...

  10. c#数字图像处理(十)图像缩放

    图像几何变换(缩放.旋转)中的常用的插值算法 在图像几何变换的过程中,常用的插值方法有最邻近插值(近邻取样法).双线性内插值和三次卷积法. 最邻近插值: 这是一种最为简单的插值方法,在图像中最小的单位 ...