一、概述

  很多时候我们需要在.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 - 访问远程数据库并对其数据表进行操作的更多相关文章

  1. SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int

    --SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...

  2. 【sql】mysql数据库做两条数据替换的操作,不使用第三方变量

    需求: 1.将数据库中两条数据中的唯一约束列  做值的替换 原始思想: 将两条数据查出来,在程序中设置第三方变量,进行两条数据的替换,然后将原始两条数据删除,将新的两条替换后的数据插入. 新思想: 1 ...

  3. 不用配置tnsnames.ora,直接通过PL/SQL访问远程数据库

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

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

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

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

  6. MSSqlServer访问远程数据库

    --第一部分(要点)--永久访问方式(需对访问远程数据库进行经常性操作)时设置链接数据库Exec sp_addlinkedserver 'MyLinkServer','','SQLOLEDB','远程 ...

  7. sql 同步远程数据库(表)到本地

    一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中: insert into db2.tb ...

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

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

  9. mORMot访问远程数据库

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

随机推荐

  1. Java_DOM创建XML

    import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...

  2. jQuery深层次复制对象

    <script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min. ...

  3. 方法的重载overload

    /*方法的重载overload * 重载:在同一个类里可以定义一个或者一个以上的方法 *     参数类型不一致 *     参数数量不一致 *     */ public class Chongza ...

  4. 对ToString("X2 ")的理解

    /// <summary>        /// 将byte型转换为字符串        /// </summary>        /// <param name=&q ...

  5. android之fragment

    觉得写得好:http://blog.csdn.net/shulianghan/article/details/38064191

  6. C#对Dictionary的按Value排序

    使用List对其进行排序 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApp ...

  7. z变换

    ---恢复内容开始--- z变换作用很大 将离散信号从时间域转到频率域 网址 ---恢复内容结束--- z变换作用很大 将离散信号从时间域转到频率域 网址 http://stackoverflow.c ...

  8. SharePoint 2013 CSOM 对象模型属性包

     博客地址:http://blog.csdn.net/FoxDave 虽说是翻译,但是并没什么翻译的,主要内容就是说有一些能通过Server API配置的Site/Web属性在CSOM中找不到,其 ...

  9. UI数据库

    一.数据库 SQL: SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集, 是一种功能齐全的数据库语言. 二.数据库管理系统 数据 ...

  10. jQuery Ajax MVC 下拉框联动

    无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List<SelectListItem> Tea ...