`
hudeyong926
  • 浏览: 2033253 次
  • 来自: 武汉
社区版块
存档分类
最新评论

SQL Server 如何跨服务器复制表中数据

阅读更多

不同数据库之间复制表的数据的方法:

当表目标表存在时:

insert into 目的数据库..表 select * from 源数据库..表  

当目标表不存在时:

select * into 目的数据库..表 from 源数据库..表

--如果在不同的SQL之间:

insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表)
select * from 源数据库..表


-- 创建链接服务器
exec sp_addlinkedserver   ' ITSV ' , ' ' , ' SQLOLEDB ' , ' 远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin ' ITSV ' , ' false ' , null , ' 用户名 ' , ' 密码 '

-- 查询示例
select * from ITSV.数据库名.dbo.表名

-- 导入示例
select * into from ITSV.数据库名.dbo.表名

-- 以后不再使用时删除链接服务器
exec sp_dropserver ' ITSV ' , ' droplogins '

-- 连接远程/局域网数据(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   ' ITSV ' , ' ' , ' SQLOLEDB ' , ' 远程服务器名或ip地址 '
-- 查询
select *
FROM openquery (ITSV, ' SELECT * FROM 数据库.dbo.表名 ' )
-- 把本地表导入远程表
insert openquery (ITSV, ' SELECT * FROM 数据库.dbo.表名 ' )
select * from 本地表
-- 更新本地表
update b
set b.列B = a.列B
FROM openquery (ITSV, ' SELECT * FROM 数据库.dbo.表名 ' ) as a
inner join 本地表 b on a.列A = b.列A

-- 3、opendatasource/openrowset
SELECT    *
FROM    opendatasource ( ' SQLOLEDB ' , ' Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta
-- 把本地表导入远程表
insert opendatasource ( ' SQLOLEDB ' , ' Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).数据库.dbo.表名
select * from

-----------------------------------------------------------------------------------------------------------------------------------

好吧,如果上面看得烦下面有个更容易理解的例子:

Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver
      @server='DBVIP',--被访问的服务器别名
      @srvproduct='',
      @provider='SQLOLEDB',
      @datasrc='Server2'   --要访问的服务器


EXEC sp_addlinkedsrvlogin
     'DBVIP', --被访问的服务器别名
     'false',
     NULL,
     'sa', --帐号
     'thankyoubobby' --密码


Select   *   from DBVIP.pubs.dbo.orders   


/////////////////////////////ORACLE////////////////////////////
Exec sp_droplinkedsrvlogin demo,Null
Exec sp_dropserver demo
go

EXEC sp_addlinkedserver
        @server ='demo',
        @srvproduct='Oracle',
   @provider='MSDAORA',
   @datasrc='ServiceName'

EXEC sp_addlinkedsrvlogin
     'demo',
     'false',
     NULL,
     'userid',
     'password'
go

SELECT * FROM OPENQUERY(demo ,'select * from tbdemo' )

UPDATE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE id = 101')
SET name = 'hello';

INSERT OPENQUERY (demo, 'SELECT id FROM tbdemo')
VALUES ('hello');

DELETE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE name = ''hello''');

-------------------------------------------具体例子------------------------------------------------------------

if   exists(select   1   from   master.dbo.sysservers   where   srvname   =   'test')  
begin  
exec   sp_droplinkedsrvlogin     'test','sa'  
exec   sp_dropserver     'test'  
end  

--建立连接服务器
EXEC sp_addlinkedserver 'test', 'ms','SQLOLEDB', '192.168.1.99'


exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
select * from test.db_film.dbo.T_film
go

if   exists(select   1   from   master.dbo.sysservers   where   srvname   =   'test')  
begin  
exec   sp_droplinkedsrvlogin     'test','sa'  
exec   sp_dropserver     'test'  
end  

go

 

方法二:

1、新建一个连接服务器,连接到你要导入的服务器的IP地址(或者机器名)



2、点击安全性,使用此安全上下文建立连接,输入数据库服务器的用户名和密码

3、选择要导出的数据库,使用如下sql导数据:

select * into   laobao from [10.180.116.121].ynpdeicp.dbo.LaoBao

Sql解释:

select 要导入的字段 into   要导入的数据表 from [IP地址].数据库名.dbo.数据表名

分享到:
评论

相关推荐

    跨服务器复制SQL表中数据 跨服务器复制SQL表中数据

    ### 跨服务器复制SQL表中数据 在数据库管理与维护工作中,经常需要处理的数据操作之一就是数据迁移或复制。特别是当涉及到跨服务器的数据同步时,这项任务变得更具挑战性。本文将详细介绍如何通过SQL Server中的...

    SQL Server跨服务器连接的多种方法

    4. **复制**(Replication):不是直接连接,而是通过复制数据到本地服务器来实现数据共享。 #### 五、总结 在实际应用中,选择哪种跨服务器连接方法取决于具体的需求和环境。例如,如果需要快速地执行简单的查询,...

    sql server 从一个数据库复制一张表到另外一个数据库

    使用链接服务器复制表 使用链接服务器,可以使用以下语句来查询远程数据库中的表: select * from ITSX.数据库名.dbo.表名 也可以使用以下语句将远程数据库中的表复制到当前数据库中: select * into 表 from ...

    利用SQL Server复制技术实现数据同步更新

    在现代企业级应用环境中,为了确保数据的一致性和高效性,SQL Server 复制技术被广泛应用于多站点或多服务器之间的数据同步。本文将详细阐述如何通过SQL Server复制功能来实现数据的发布与订阅过程,帮助读者理解其...

    如何在两个SQLSERVER之间数据同步

    ### 如何在两个SQLSERVER之间实现数据同步 在IT领域,特别是对于企业级应用而言,数据同步是一项重要的技术,能够确保不同地理位置的数据中心之间数据的一致性和可用性。本文将详细介绍如何通过SQL Server的复制...

    SQLServer代理服务器

    SQL Server代理服务器是Microsoft SQL Server数据库管理系统中的一个重要组成部分,它主要负责执行计划的任务,如定期备份、维护数据库、数据导入导出以及运行自定义脚本等。SQL Server代理服务器是数据库自动化运维...

    sql server双机热备 无见证服务器

    SQL Server双机热备无见证服务器是指在SQL Server数据库中,使用两个服务器实现热备的方式来保护数据,且不需要见证服务器镜像。这种方式可以实时备份数据,保护数据的安全。 在这种方式中,需要创建证书来实现互通...

    实例Sql server 2005订阅复制同步分发数据到多台服务器

    SQL Server 2005的订阅复制同步功能是一种强大的数据分发机制,它允许数据从一个或多个发布服务器分发到多个订阅服务器,以实现数据的实时或定期更新,确保多台服务器间的数据一致性。在本实例中,我们将探讨如何...

    SQL SERVER 发布/订阅 数据同步

    - 对于SQL Server 2000,需启动`SQLSERVERAGENT`服务; - 对于SQL Server 2008,需启动`SQL Server代理 (MSSQLSERVER)`服务。 2. **网络配置**:使用`telnet`命令验证两个服务器之间的网络连接性,确保1433端口...

    sql server 2008安装过程中服务器配置出错的解决方法

    在安装Microsoft SQL Server 2008的过程中,有时会出现服务器配置出错的情况,特别是当尝试为所有SQL Server服务设置相同账号时。这个问题主要是由于安装程序无法接受自定义的账号和密码,导致安装流程中断。以下是...

    SqlServer 数据库表格的复制(数据和表结构同时复制)

    在本篇文章中,我们将详细介绍如何使用 SqlServer 数据库管理系统中的导出数据功能来实现数据库表格的复制,包括数据和表结构的同时复制。这种方法可以帮助数据库管理员快速地将表格从一个数据库迁移到另一个数据库...

    SQL Server2000 同步复制技术实现步骤

    《SQLSERVER中,数据库同步的实现》则更专注于事务复制的实践。《如何同步两个SQLServer数据库的内容》可能包含特定场景下的同步解决方案。《在局域网内有两台服务器》可能探讨了网络环境对复制的影响。《SQL 2000 ...

    两台SQL-Server数据同步解决方案

    通过对SQL Server复制机制的理解及实施步骤的学习,我们可以有效地实现两台SQL Server之间的数据同步。无论是选择快照复制、事务复制还是合并复制,都能根据实际应用场景的需求灵活配置。此外,通过手动同步方案,也...

    sql server compact 3.5 连接 sql server 2005 使用同步复制、RDA C#源码

    sql server 2005 使用同步复制、RDA C#源码”表明我们讨论的是一个关于在C#编程环境中,使用SQL Server Compact 3.5(一个轻量级的数据库引擎)连接到SQL Server 2005,并实现数据同步和远程数据访问(RDA)的技术...

    SQLSERVER对单个表的查询结果导出导入

    在跨服务器数据库表之间的导出导入,需要将源表中的数据导出到EXCEL中,然后将EXCEL中的数据导入到目标表中。下面是操作步骤: A、将源表中的数据导出到EXCEL中 1. 选中数据库,右键-任务-点击“导出数据”,...

    C#中读取sql server的数据,并在datagridview中显示

    通过索引`0`访问第一个(也是唯一一个)`DataTable`,并使用`Copy()`方法复制数据,以便进一步处理或显示。 ### 四、在DataGridView中显示数据 最后一步是在Windows Forms应用程序中常用的`DataGridView`控件中...

    Sql Server合并复制

    1. **发布**: 在SQL Server中设置一个发布,需要选择要复制的数据库对象,如表、视图和存储过程。可以设置复制选项,例如筛选数据以仅复制部分行,或者控制哪些用户有权订阅。 2. **订阅**: 订阅者选择他们想要接收...

    sql server数据导入mysql方案

    本方案主要探讨如何将SQL Server中的数据迁移到MySQL,涵盖了多种迁移工具和技术,包括Kettle、SqlYong、Navicat以及DataX。这些工具支持离线和在线迁移,甚至能处理分片式数据库的迁移,极大地提高了数据迁移的灵活...

Global site tag (gtag.js) - Google Analytics