精华内容
下载资源
问答
  • SQLServer创建连接服务器
  • 多个数据库服务器之间数据访问,通过连接数据库服务器,主要介绍SQLSERVER数据库间的连接服务器的建立
  • SQL server 新建链接服务器代码,更改登录账户及密码,直接运行即可
  • SQLServer创建链接服务器

    万次阅读 2019-08-28 10:38:52
    这里使用SQL Server Management,点击链接服务器展开,右键选择新建链接服务器。 之后确定即可。 注意要添加本地服务器登录到远程服务器登录的映射,我之前没有添加,虽然能够查小量数据,但数据量一大就...

    链接服务器的使用场景:

        查询数据时既需要用到A机上数据库里的表又需要B机数据库里的表,就可以在A机数据库上建立链接服务器。

    这里使用SQL Server Management,点击链接服务器展开,右键选择新建链接服务器。

    之后确定即可。

    注意要添加本地服务器登录到远程服务器登录的映射,我之前没有添加,虽然能够查小量数据,但数据量一大就一直报错误:

    当然出现这个问题也可能不是这个原因,可以尝试调整远程查询超时值。

    建立完链接服务器,就可以在A机数据库的查询窗口查询,使用方式:

    //查询链接服务器上的表

    select * from [链接服务器名].[远程数据库名].[所有者].[表名]

    例子:

    select A机的表名.* from A机的表名
    left join [A机上设置的B机链接服务器名称].[B机数据库名].[dbo].[B机上的表名]
    on 左连接条件
    where 查询条件

     

    展开全文
  • 介绍通过SQLSERVER链接服务器实现sqlserver和oracle的异构数据库分布式查询。
  • 一、SqlServer --创建远程链接服务器 EXEC master.dbo.sp_addlinkedserver @server = N'EPMS_Haha' --链接服务器的名称 ,@srvproduct=N'h3cepms02-db' --SqlServer默认不需要写 ,@provider=N'SQLNCLI' --不同的库...

    一、SqlServer

    --创建远程链接服务器
    EXEC master.dbo.sp_addlinkedserver 
    @server = N'EPMS_Haha'        --链接服务器的名称
    ,@srvproduct=N'h3cepms02-db'  --SqlServer默认不需要写
    ,@provider=N'SQLNCLI'         --不同的库都是不一样的(SQLNCLI或SQLOLEDB都行)
    ,@datasrc=N'h3cepms02-db,1523'--目标数据库所在的服务器
    
    EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname=N'EPMS_Haha'   --链接服务器的名称
    ,@useself=N'False'         --固定这么写
    ,@locallogin=NULL          --本地操作用户名(sa或null都行)
    ,@rmtuser=N'user99999'     --目标数据库所在的服务器的用户名
    ,@rmtpassword='user99999'  --目标数据库所在的服务器的密码
    
    --删除远程链接服务器
    EXEC sp_dropserver EPMS_Haha
    EXEC sp_dropserver 'EPMS_Haha'
    
    --用远程链接服务器进行查询方法1:简洁但性能弱
    select *, GETDATE() as SyncTime from EPMS_Haha.Epms.dbo.UserInfo
    --用远程链接服务器进行查询方法1:稍复杂但性能强
    select *, GETDATE() as SyncTime from openquery(EPMS_Haha,'select * from Epms.dbo.UserInfo')

    二、MySql

    要想创建SqlServer访问MySql的链接服务器,首先要在MySqlConnector中添加数据源,然后在SqlServer中执行脚本创建链接服务器。

    注意:
    SqlServer连接MySql需要先安装mysql-connector-odbc,下载地址:https://dev.mysql.com/downloads/connector/odbc/
    连接方与被连接方的MySQL ODBC驱动版本不一致时,用户名和密码正确也有可能连接失败!

    --创建远程链接服务器
    EXEC master.dbo.sp_addlinkedserver 
    @server = N'CMDB_Haha'  --链接服务器的名称
    ,@srvproduct=N'MySql'   --产品名称
    ,@provider=N'MSDASQL'   --OLEDB驱动名称(固定)
    ,@datasrc=N'cmdb'       --MySql数据源名称
    
    EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname=N'CMDB_Haha' --链接服务器的名称
    ,@useself=N'False'       --固定这么写
    ,@locallogin=null        --本地操作用户名(sa或null都行)
    ,@rmtuser=N'user99999'   --MySql数据源的账号
    ,@rmtpassword='user99999'--MySql数据源的密码
    
    --删除远程连接服务器
    EXEC sp_dropserver CMDB_Haha
    EXEC sp_dropserver 'CMDB_Haha'
    
    --用远程链接服务器进行查询方法1:简洁但性能弱
    select *, GETDATE() as SyncTime from CMDB_Haha.Epms.dbo.UserInfo
    --用远程链接服务器进行查询方法1:稍复杂但性能强
    select *, GETDATE() as SyncTime from openquery(CMDB_Haha,'select * from Epms.dbo.UserInfo')

    三、Oracle

    注意:
    SqlServer连接Oracle需要先安装Oracle客户端,下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

    --创建远程连接服务器(全路径DataSource)
    EXEC master.dbo.sp_addlinkedserver 
    @server = N'DMS_Haha'          --链接服务器的名称
    , @srvproduct=N'oracle'        --产品名称
    , @provider=N'OraOLEDB.Oracle' --OLEDB驱动名称(固定)
    , @datasrc=N'hengha.google.com:1521/barp' --格式(ip:端口/SERVICE_NAME)
    
    EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname=N'DMS_Haha' --链接服务器的名称
    ,@useself=N'False'      --固定这么写
    ,@locallogin=NULL       --本地操作用户名(sa或null都行)
    ,@rmtuser=N'user99999'  --Oracle数据源的账号
    ,@rmtpassword='user99999'--Oracle数据源的密码
    
    --删除远程连接服务器
    EXEC sp_dropserver DMS_Haha
    EXEC sp_dropserver 'DMS_Haha'
    
    --用远程链接服务器进行查询方法1:简洁但性能弱
    select *, GETDATE() as SyncTime from DMS_Haha.Epms.dbo.UserInfo
    --用远程链接服务器进行查询方法1:稍复杂但性能强
    select *, GETDATE() as SyncTime from openquery(DMS_Haha,'select * from Epms.dbo.UserInfo')

    除了利用DataSource全路径创建远程连接服务器外,用DataSource简称也可以创建远程链接服务器,不过需要先添加配置。

    --创建远程连接服务器(DataSource简称)
    EXEC master.dbo.sp_addlinkedserver 
    @server = N'DMS_Haha'          --链接服务器的名称
    , @srvproduct=N'oracle'        --产品名称
    , @provider=N'OraOLEDB.Oracle' --OLEDB驱动名称(固定)
    , @datasrc=N'barp' --格式(ip:端口/SERVICE_NAME)

    展开全文
  • 主要介绍了SQLSERVER简单创建DBLINK操作远程服务器数据库的方法,涉及SQLSERVER数据库的简单设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • SQL Server创建链接服务器的几种方式

    千次阅读 2020-11-24 13:04:53
    当我们需要从别人的数据库服务器上将数据...SQL Server链接服务器不仅可以帮助你链接SQL Server,还可以链接Oracle、Access、MySQL、ODBC数据源。 1. SQL Server链接SQL Server 我这里两台SQL服务器分别为SQL1.abc.co

    当我们需要从别人的数据库服务器上将数据复制到本地时,除了编写程序来实现之外,作为数据库管理员或者普通的数据库用户来说,如果不会编写外挂程序,那怎么办呢?冷静,链接服务器来帮你解决。有了链接服务器,我们不需要写任何的程序,就可以实现将一个数据库的数据复制到另一个数据库。

    SQL Server链接服务器不仅可以帮助你链接SQL Server,还可以链接Oracle、Access、MySQL、ODBC数据源。

    1. SQL Server链接SQL Server

    我这里两台SQL的服务器分别为SQL1.abc.com和SQL2.abc.com。

    在SQL1上新建链接服务器:

    在这里插入图片描述
    在这里插入图片描述
    接下来我们左边选择“安全性”,配置远程链接的账号密码:
    这里一定注意配置登录映射的时候,“本地登录”的账号必须与你本地数据库登录的账号一致,即图中1与2处的账号要相同。如果不相同,会出现后面“访问遭拒绝,不存在登录映射的问题”。一旦配置出错,建议关闭,退出重新来过,重新创建链接服务器,否则会出现各种奇奇怪怪的报错,比如,明明输入了账号sa,提示输入的账号是s,登录失败。

    下面是错误的示范:

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    正确的示范:
    在这里插入图片描述
    注意这个选项:

    在这里插入图片描述
    这个选项是专门针对有多个数据库登录用户的情况,如果没有在上面进行登录映射定义,他们就无法建立连接。还有一个“使用此安全上下文建立连接”,这个选项可以不配置前面的登录映射,直接在这里配置远程的登录名和密码,全部使用这个账号密码建立连接。
    在这里插入图片描述

    建立链接服务器完成之后(如下图),那怎么使用呢?
    在这里插入图片描述
    [链接服务器名].数据库名.架构名.表名

    select * from [SQL2.abc.com].test.dbo.test
    

    注意:这里的链接服务器名一定要用中括号"[]"括起来,不然又会报错:

    在这里插入图片描述

    2. 使用ODBC链接SQL Server

    在这里插入图片描述

    在这里插入图片描述
    安全性设置和之前一样就不说了。

    3. 使用ODBC链接MySQL

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    查询:

    SELECT * FROM OPENQUERY (LINK_ODBC_MYSQL, 'select * from test')
    

    添加:

    Insert openquery(LINKDB_MYSQL, 'select * from test') (Address) values('云南')
    

    删除:

    delete openquery(LINKDB_MYSQL, 'SELECT * FROM test where id=2')
    

    或者:

    delete openquery(LINKDB_MYSQL, 'SELECT * FROM test ')where id=5
    

    更新:

    update openquery(LINKDB_MYSQL, 'SELECT * FROM test') SET Address = '北京' WHERE id = 1
    

    如果出现链接好之后,查询提示“Source character set not supported by client”说明数据库驱动版本不够,像上面我使用的是mysql8.0.13,但是我的odbc驱动是5.3,就会出现这个问题,更换odbc驱动为8.0.18之后正常访问。

    在这里插入图片描述

    4. 使用ODBC链接Oracle

    基本跟链接MySQL差不多,驱动不同而已。
    首先需要安装Oracle驱动instant client,点我这个链接直接去Oracle官网找。根据自己的需要下载相关的驱动及工具包。我这里只需要basic(这是必须的)和odbc驱动(这也是必须的,因为需要创建ODBC数据源连接Oracle数据库),因为我是64位的,所以我需要下64位的包,如下图:
    在这里插入图片描述
    这个安装教程其实很简单,我有一个文档在我的下载资源里,这里也简单写写吧,方便没有积分的朋友。
    将两个压缩包解压,将里面的内容合并到同一个文件夹中。否则后面安装ODBC时会提示找不到instant client。我合并后的文件夹instantclient_11_2放在路径: C:\Program Files\Oracle\instantclient_11_2,在C:\Program Files\Oracle\instantclient_11_2目录下创建子文件夹network\admin,绝对路径也就是:C:\Program Files\Oracle\instantclient_11_2\network\admin,在该目录下新建文件tnsnames.ora和sqlnet.ora。文件中的详细内容配置可自行百度,关于sqlnet和tnsnames文件的作用也自行百度。
    sqlnet.ora文件内容如下:

    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    

    tnsnames.ora文件内容如下:

    ORCL_TEST=
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 你的Oracle主机名)(PORT = 1521))  
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = 服务名,我这里是默认的orcl)
        )
      )
    

    设置系统环境变量:

    Path	      C:\Program Files\Oracle\instantclient_11_2
    
    在Path后面追加instantclient路径
    
    TNS_ADMIN	  C:\Program Files\Oracle\instantclient_11_2\network\admin
    
    tnsnames.ora所在路径
    
    NLS_LANG	SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    
    设置Oracle字符语言集,此字符集支持中文
    

    进入到instantclient_11_2目录,运行刚合并进来的odbc_install.exe安装ODBC驱动。直接双击运行一闪而过,看不到是否安装成功,可以通过cmd运行查看运行结果。
    至此,配置全部完成。可以通过ODBC创建数据源连接Oracle数据库了,如果在程序中调用DSN时出现驱动程序与应用程序体系结构不匹配,则说明所安装的版本不正确(若安装的64位则更换32位即可解决)。
    在这里插入图片描述
    在这里插入图片描述

    SELECT * FROM OPENQUERY (ORCL, 'select * from test')
    

    在这里插入图片描述
    增删改查写法参考MySQL部分

    5. 使用Oracle OLEDB驱动提供程序链接Oracle数据库

    Oracle Data Access Components (ODAC)
    这种方法与第四种instant client创建odbc驱动链接的方式存在冲突,OLEDB驱动安装之后也会安装instant client的basic组件。所以需要删除之前的Path环境变量中instant client的路径,修改为稍后要创建的新路径。或者将之前的ODBC驱动重新安装到这个instant client目录中,不再使用之前的instant client。
    首先需要下载OLEDB驱动,同样,我下载64位版本:https://www.oracle.com/database/technologies/odac-downloads.html

    在这里插入图片描述
    在这里插入图片描述
    解压:
    在这里插入图片描述

    这个压缩包是包含了安装说明的文档的,里面有readme.htm。文档里也有讲,可以全部安装,也可以选择需要的组件进行安装。我这里就只安装我需要的就行了。在当前目录打开命令窗口,输入:

    install.bat oledb c:\oracleOLEDB ODAC
    

    在这里插入图片描述
    其中oledb代表要安装的组件,c:\oracleOLEDB为安装目录,ODAC为注册表项Oracle Home的名称,卸载的时候使用uninstall.bat(需要到安装目录下使用这个命令,而不是刚刚的解压目录里),带这个名字或者目录都行。卸载命令:

    uninstall.bat all ODAC
    

    安装完成之后,就会出现OraOLEDB.Oracle这个访问接口了
    在这里插入图片描述
    在这里插入图片描述
    接口的属性里有一些设置选项,自己酌情勾选,建议勾选"允许进程内"。
    别着急去创建链接服务器,在系统环境变量中,为Path添加“C:\oracleOLEDB;C:\oracleOLEDB\bin;”(计算机属性-高级系统设置-高级-环境变量-系统环境变量-Path),如果之前安装过instant client,需要删除其路径,否则在SQL Server管理工具创建链接服务器时会卡死。
    如果是供外部应用程序访问,还需要配置TNS_ADMIN和NLS_LANG环境变量,配置方式参考第四步。
    最后创建链接服务器:
    在这里插入图片描述
    由于OLEDB驱动支持EZCONNECT,所以不配置tnsnames.ora也是可以的,使用IP:端口号/实例名也可以:
    在这里插入图片描述

    安全性设置不用说了,一样。
    这种驱动创建的链接服务器可以使用下面这种方式进行查询,也可以使用前面的openquery方式查询。

    select * from ORACLEOLEDB..SYSTEM.TEST
    

    SYSTEM是我TEST表创建时选择的方案,注意方案前面试两个点。注意Oracle区分大小写,否则会无法查询。

    以下引用内容出自:https://blog.csdn.net/jack_33/article/details/7620100

    通过OleDB连接Oracle数据库,一般有两种provider
    A:provider=MSDAORA.1
    B:provider=OraOLEDB.Oracle
    第一种为微软公司的oracle组件,第二种为oracle的访问组件。
    Oracle数据库经常使用的两种字符集
    C:英文:SIMPLIFIED CHINESE_CHINA.US7ASCII
    D:中文:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    A与C、D搭配,数据读写没有乱码问题,如果出现乱码,则修改系统级(非用户级)的环境变量nls_lang为数据库所使用的字符集,重启电脑即可。
    缺点:不支持long/Clob/Blob大字段。
    B支持大字段,与D搭配最为完美。如果BC搭配使用,读出无乱码,写入为乱码,做为where条件传进去的中文参数为乱码。无法使用。如果数据库字符集为C,则只能使用A。如果要读取大字段,只得使用B新建连接

    MSDAORA仅支持32位,64位机器上可能已经没有带该驱动了。
    下载链接:https://www.microsoft.com/zh-CN/download/details.aspx?id=5793
    在这里插入图片描述

    展开全文
  • SqlServer创建SqlServer连接服务器

    千次阅读 2015-06-09 14:21:22
    SqlServer创建SqlServer连接服务器 第一种:界面操作 (1)展开服务器对象-->链接服务器-->右击“新建链接服务器”   (2)输入链接服务器的IP (3)链接成功后     现在测试一下,用帐号sa本地登录Sql...
     
    

    SqlServer中创建SqlServer连接服务器

    第一种:界面操作

    (1)展开服务器对象-->链接服务器-->右击“新建链接服务器”

     

    (2)输入链接服务器的IP

    3)链接成功后

     

     

    现在测试一下,用帐号sa本地登录SqlServer,新建一个查询,输入

    Select * From [链接服务器名].[远程数据库名].[所有者].[表名]

    例子:

    Select * from [127.0.0.1].[kobe].[dbo].[t_system_info]

    没问题的话,就能查询到数据了。

    第二种:语句操作

    EXEC sp_addlinkedserver

          @server='kobe',--被访问的服务器别名

          @srvproduct='',--SqlServer默认不需要写

          @provider='SQLOLEDB', --不同的库都是不一样的

          @datasrc='192.168.88.88'   --要访问的服务器

    EXEC sp_addlinkedsrvlogin

         'kobe', --被访问的服务器别名

         'false',

          NULL,

         'sa', --帐号

         'kobe123' --密码

    GO

     

     

    现在测试一下,用帐号sa本地登录SqlServer,新建一个查询,输入

    Select * From [链接服务器名].[远程数据库名].[所有者].[表名]

    例子:

    Select * from [127.0.0.1].[kobe].[dbo].[t_system_info]

    没问题的话,就能查询到数据了。
    展开全文
  • SQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQL
  • sqlserver链接服务器创建方法。
  • sql server 连接mysql服务器创建连接

    万次阅读 2019-02-28 09:32:26
    这里访问字符串要填写,不填写无法成功,并且当前sql server连接与odbc必须在同一台机器,如果sql server连接其他远程sql server数据库,则无法成功  Driver={MySQL ODBC 5.1 Driver};Server=ServerName;...
  • SqlServer创建Oracle连接服务器

    千次阅读 2019-05-18 09:46:13
    SqlServer创建Oracle连接服务器 第一种:界面操作 (1)展开服务器对象-->链接服务器-->右击“新建链接服务器” (2)输入链接服务器的IP (3)链接成功后 第二种:语句操作 注:需要提前...
  • SQL Server 创建链接服务器

    千次阅读 2018-07-26 18:02:00
    适用场景:对远程的DB进行操作。 2000与2005对比:在SQL Server 2000版本中也有链接远程DB的SQL,但是功能比较弱,扩展性差,支持的查询比较简单。而SQL Server 2005
  • 场景:业务数据库是oracle 11g ,现在需要在另外一台服务器上安装SQLServer2012 并抽取oracle数据库中的数据 首先是安装服务器系统,WinServer2008R2 64位 操作系统安装完成后,拷贝数据库镜像,加载虚拟光驱,...
  • 本文介绍通过云数据库 SQL Server 控制台创建实例及Windows 云服务器连接 SQL Server 的操作。 一、创建实例 登录云数据库 SQL Server 控制台,在实例列表页单击【新建】。 在购买页中,选择数据库相关配...
  • SqlServer创建链接服务器(作用等效Oracle的dblink)
  • ![图片说明](https://img-ask.csdn.net/upload/201807/12/1531378927_924801.png)
  • 项目中用到sqlserver连接oracle,通过sqlserver可以直接操作oracle. 1、安装oracle客户端软件,并配置: www.2cto.com 1)打开Net Manager,新增服务名: www.2cto.com 2)选择网络协议: 3)填写...
  • 教你怎样在SQL-SERVER创建Oracle的链接服务器,实践摸索出来的经验,用的是SQL-SERVER 2005连接Oracle 10g数据库。
  • SQL Server2012创建连接服务器到ORACLE11G

    万次阅读 2015-01-29 10:26:46
    做ETL,肯定少不了经常会从不同的数据库直接进行数据的操作,为了更好的进行跨库操作,SQL SERVER 2012拥有LinkedServer功能。前段时间写了个SQL SERVER同种数据库直接的链接数据库的链接,具体请参考:...
  • 在客户端远程连接SQL Server 2017时,提示建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server已配置为允许远程连接。错误:53。 解决方案: 1.无法远程...
  • SQL SERVER 新建链接服务器语句

    千次阅读 2020-01-02 16:52:26
    exec sp_addlinkedserver 'yjzf_dd', '', 'SQLOLEDB', 'ip地址'; exec sp_addlinkedsrvlogin 'yjzf_dd', 'false',null,'用户名', '密码' ; 执行完后sql
  • Linked servers allow submitting a T-SQL statement on a SQL Server instance, which returns data from other SQL Server instances. A linked server allows joining data from several SQL Server instance...
  • exec sp_dropserver '链接名', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码...
  • 本文转自:sql server 数据库创建链接服务器访问另外一个sql server 数据库 继上篇在sql server创建链接服务器访问oracle数据库:http://www.cnblogs.com/527289276qq/p/4770379.html 本文介绍在sql server中...
  • sqlserver创建链接服务器图解教程

    万次阅读 2017-12-01 14:54:45
    1.展开服务器对象-->链接服务器-->右击"新建链接服务器"   注意:必须以数据库管理员身份登录(通常也就是sa帐号)后,才...现在测试一下,用帐号user本地登录SqlServer,新建一个查询,输入Select * From [链接服
  • 远程服务器SqlServer允许本地连接 最近做项目都是直接在阿里云买的服务器,并且SqlServer也是安装好的。但是默认的时候,这个服务器上的SqlServer并不允许直接在本地的SqlServer客户端访问,尽管服务器有公网IP。 ...
  • 两种方式创建sqlserver链接服务器

    万次阅读 2018-06-04 17:59:34
    创建链接服务器SQL Server 数据库引擎) 本主题说明如何通过使用 SQL Server 或 SQL Server Management Studio 创建链接服务器和访问来自其他Transact-SQL的数据。 通过创建链接服务器,您可以使用来自多个...
  • SQL Server 服务器对象之链接服务器

    千次阅读 2020-06-24 14:34:16
    SQLServer中经常使用别的服务器的数据库进行夸数据库数据的访问和操作,这时候比较好的方式之一就是在本机的SQLServer数据库服务器创建一个链接服务器创建一个链接服务器 右击链接服务器 2、填写对应...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 222,464
精华内容 88,985
关键字:

sqlserver创建链接服务器