T-SQL - 访问远程数据库并对其数据表进行操作
一、概述
很多时候我们需要在.NET应用程序中使用一条SQL语句来访问来自不同服务器、不同数据库中的不同的表,实现方法有很多。我们可以在.NET应用程序中建立数据访问层,使用ADO.NET Entity Framework将我们的数据库以及数据表抽象成应用程序对象,进而在程序里使用Code来对不同库当中的表进行连接或其他的操作;也可以在数据库级别使用T-SQL脚本直接对不同数据库中的表进行查询或其他操作,前一种方式在这里不做过多介绍,今天介绍一下后一种。
先介绍一下环境,我有2个数据库服务器Server_A和Server_B
Server_A(本地)
- 数据库:AdventureWorkLT
- 数据表:SalesLT.Customer

Server_B(远程)
- 数据库:TailspinToys
- 数据表:dbo.Products

二、使用T-SQL实现
首先我们需要使用本地数据库中的系统存储过程将远程数据库的连接字符串添加到本地数据库中
exec sp_addlinkedserver 'Server_B','','SQLOLEDB','192.168.0.2'
exec sp_addlinkedsrvlogin 'Server_B','false',null,'dbUser','dbPassword'
该命令仅执行一次即可,现在我们已经将远程的Server_B服务器添加到了本地,我们可以使用如下命令来对远程的数据表进行查询或其他的操作
SELECT b.CustomerID,a.ProductID,b.LastName AS CustomerName,a.[Description] AS ProductName,a.Unit,a.RetailPrice
FROM Server_B.TailspinToys.dbo.Products as a
JOIN AdventureWorksLT.SalesLT.Customer AS b
ON a.ProductID=b.CustomerID
WHERE b.CustomerID>4
T-SQL - 访问远程数据库并对其数据表进行操作的更多相关文章
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- 【sql】mysql数据库做两条数据替换的操作,不使用第三方变量
需求: 1.将数据库中两条数据中的唯一约束列 做值的替换 原始思想: 将两条数据查出来,在程序中设置第三方变量,进行两条数据的替换,然后将原始两条数据删除,将新的两条替换后的数据插入. 新思想: 1 ...
- 不用配置tnsnames.ora,直接通过PL/SQL访问远程数据库
- SQL SERVER 导入、导出数据到Exce(使用OpenRowset,、OpenDataSource函数)以及访问远程数据库(openrowset/opendatasource/openquery)
启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安 ...
- 【SQLServer】使用T-SQL访问远程数据库:openrowset 和 openquery 以及连接服务器的创建
█ 启用/关闭Ad Hoc Distributed QueriesAd Hoc Distributed Queries服务默认是关闭的,要使用openrowset 和 openquery访问远程数据库 ...
- MSSqlServer访问远程数据库
--第一部分(要点)--永久访问方式(需对访问远程数据库进行经常性操作)时设置链接数据库Exec sp_addlinkedserver 'MyLinkServer','','SQLOLEDB','远程 ...
- sql 同步远程数据库(表)到本地
一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中: insert into db2.tb ...
- DB2 编目并访问远程数据库
之后将逐步对项目上的DB2相关经验做个总结,梳理一下知识结构. 要远程操作数据库,首先要进行编目,分三个步骤: 1. 在客户端建立服务器端数据库的节点,编目远程节点. 格式如下: 1. CATALOG ...
- mORMot访问远程数据库
mORMot访问远程数据库 mORMot中提供了TOleDBJetConnectionProperties类来处理Access的mdb数据库的访问,自带线程池.通过TSQLDBServerHttpAp ...
随机推荐
- 利用反射模拟一个spring的内部工作原理
这个简单的案例是实行了登录和注册的功能,没有链接数据库. 在bean中id 是唯一的,id和name的区别在于id不能用特殊字符而name可以用特殊字符,比如:/-\.... package com ...
- my understanding of (lower bound,upper bound) binary search, in C++, thanks to two post 分类: leetcode 2015-08-01 14:35 113人阅读 评论(0) 收藏
If you understand the comments below, never will you make mistakes with binary search! thanks to A s ...
- pushlet
自己准备做一个小游戏,租个云服务,然后挂在网上,可以跟同学一起玩,不过首先布置的是,这个游戏是否能实现,多人在线网页游戏,考虑到是否能够实时查询,在网上借鉴了下聊天原理,http长连接,搜索到push ...
- mysql 操作杂记
SHOW VARIABLES LIKE 'character%'; SET character_set_client = utf8; SET character_set_connection = ut ...
- c/c++面试题(9)linux方向
1.简述用虚函数实现的多态的原理: 编译器发现一个类中有虚函数的时候,便会立即为此类生成虚函数表vtable.虚函数表的各 表项为指向对应虚函数的指针.编译器还会在此类中隐含插入一个指针vptr(对v ...
- 各种url编码
URLENCODE和URLDECODE是比较常用的URL参数转换方法,为以后使用方便,自己归类一下. 一.JavaScript: 编码:encodeURIComponent(URIString) ...
- sqoop笔记
adoop学习笔记—18.Sqoop框架学习 一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数 ...
- final修饰的变量是引用不能改变,还是引用的对象不能改变???
对于这个问题,我们不能只记结论,要拿实例说话,参看以下代码: public class Demo { public static void main(String[] args) { final St ...
- jquery+php+mysql实现Ajax省市县三级联动
1.第一步建立一个html页面的,放置省.市.县三个select选择框,代码如下: <!DOCTYPE html> <html> <head> <title& ...
- 操作各个版本的excel的链接写法
有很有意思的网站:https://connectionstrings.com/ace-oledb-12-0/ 很详细得介绍了各种写法 这里主要提两个: string strCon = @" ...