`
caiying0504
  • 浏览: 343092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

跨数据库复制表数据

阅读更多
tableA:目标表
tableB:源表
databaseName:源数据库

insert into tableA
SELECT * FROM        
OPENDATASOURCE('SQLOLEDB', 'Data Source=127.0.0.1;User ID=sa;Password=sasasa').databaseName.dbo.tableB



可能会遇到的问题及解决方法
/*
	导入
*/
--错误信息如下时:
--Msg 15281, Level 16, State 1, Line 2
--SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online. 
--请选择执行下面语句,修改默认配置,在进行导入操作
-- begin
sp_configure 'show advanced options',1
RECONFIGURE WITH override
go
sp_configure 'Ad Hoc Distributed Queries',1 -- 1:启用,默认0:禁用
RECONFIGURE WITH override
go
EXEC sp_configure;
go
-- end

-- 查询
select * from  
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\ExcelSheet1.xls',sheet1$) 
go
-- 查询并导入
select * into ExcelSheet from  
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\ExcelSheet1.xls',sheet1$) 
go

/*
	导出
*/
--错误信息如下时:
--Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1
--SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online. 
--请选择执行下面语句,修改默认配置,在进行导出操作
-- begin
sp_configure 'show advanced options',1
RECONFIGURE WITH override
go
sp_configure 'xp_cmdshell',1 -- 1:启用,默认0:禁用
RECONFIGURE WITH override
go
EXEC sp_configure;
go
-- end

--添加到现在Excel文档
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\ExcelSheet.xls',sheet1$)
go
--带连接信息导出
EXEC master..xp_cmdshell 'bcp Test.dbo.ExcelSheet out "C:\ExcelSheet.xls" -c -S"LONG-LENOVOPC" -U"sa" -P"s1"' 
go
--使用默认安全连接导出
EXEC master..xp_cmdshell 'bcp Test.dbo.ExcelSheet out "C:\ExcelSheet.xls" -c -T' 
go
--带查询语句导出
EXEC master..xp_cmdshell 'bcp "SELECT * FROM Test.dbo.ExcelSheet" queryout "D:\ExcelSheet.xls" /c -S"LONG-LENOVOPC" -U"sa" -P"s1"' 
go

/*

BCP共有四个动作可以选择。
(1) 导入 : 这个动作使用in命令完成,后面跟需要导入的文件名。

(2) 导出 : 这个动作使用out命令完成,后面跟需要导出的文件名。

(3) 使用SQL语句导出 : 这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。

(4) 导出格式文件 : 这个动作使用format命令完成,后而跟格式文件名。

常用参数介绍:
-f : format_file表示格式文件名。这个选项依赖于上述的动作,如果使用的是in或out,format_file表示已经存在的格式文件,如果使用的是format则表示是要生成的格式文件。

-x : 这个选项要和-f format_file配合使用,以便生成xml格式的格式文件。

-F : first_row指定从被导出表的哪一行导出,或从被导入文件的哪一行导入。

-L : last_row指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束。

-c : 使用char类型做为存储类型,没有前缀且以"\t"做为字段分割符,以"\n"做为行分割符。

-w : 和-c类似,只是当使用Unicode字符集拷贝数据时使用,且以nchar做为存储类型。

-t : field_term指定字符分割符,默认是"\t"。

-r : row_term指定行分割符,默认是"\n"。 

-S : server_name指定要连接的SQL Server服务器的实例,如果未指定此选项,BCP连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。 

-U : login_id指定连接SQL Sever的用户名。

-P : password指定连接SQL Server的用户名密码。

-T : 指定BCP使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。

-k : 指定空列使用null值插入,而不是这列的默认值。

*/
分享到:
评论

相关推荐

    跨数据库复制数据.doc

    ### 跨数据库复制数据知识点详解 #### 一、概述 在日常的数据管理工作中,经常会遇到需要将一个数据库中的数据复制到另一个数据库中的场景。本文档将详细介绍如何在SQL Server环境中实现跨数据库的数据复制,主要...

    跨数据库同步数据

    "跨数据库同步数据"这一主题涉及到如何在不同的数据库之间有效地迁移和更新信息,确保数据的一致性和完整性。在这个过程中,工具和技术的选择至关重要,而TJS(可能代表某个特定的数据同步工具或框架)就是一种用于...

    数据库之间复制表

    数据库之间复制表是数据库开发中常见的需求,例如在不同的数据库或同一个数据库中将表之间的数据互相导入。这种操作可以通过编写程序实现,但是需要开发环境,不方便。利用 SQL 语言直接导入是最方便的方法,该方法...

    oracle跨数据库查询授权

    支持授权非自身表空间的用户权限。 跨数据库查询对方表数据,以及复制粘贴。

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

    我们需要从远程服务器的`dbo.Table_A`表复制数据到本地服务器的`dbo.Table_B`表。 **具体步骤:** 1. **创建链接服务器:**如果还没有创建链接服务器,则需要首先创建一个连接到远程服务器的链接服务器。 2. **...

    数据库数据复制,数据库数据同步,数据库之间协同作业

    - **消除数据库差异**:数据循环中间件支持多种数据库类型,并且允许不同结构的表之间进行数据同步和转换,极大地方便了跨数据库的数据交互。 - **免除了数据库接口编程**:通过使用ISFRAMEDC,开发者无需编写复杂的...

    异构数据库复制技术的研究与实现

    随着信息技术的快速发展,分布式计算环境变得越来越复杂,数据库复制技术作为一种重要的分布式技术,在提高数据可用性、减轻网络负担以及实现数据冗余等方面发挥着重要作用。然而,随着不同类型的数据库系统(如关系...

    java多个数据库实现数据同步

    6. **数据复制和迁移工具**:如Oracle GoldenGate、MySQL Replication或Apache Sqoop等,专门用于数据库之间的数据同步。这些工具提供了丰富的配置选项和强大的性能,但可能需要额外的学习成本。 7. **微服务架构**...

    数据库同步工具(跨平台)

    标题提到的"数据库同步工具(跨平台)"是指能够跨越不同操作系统环境(如Windows、Linux、macOS等)进行数据库数据同步的软件解决方案。这样的工具允许用户在多个数据库实例间保持数据的一致性和完整性,无论这些...

    跨数据库同步工具TJS

    【跨数据库同步工具TJS】是一款专为解决数据在不同数据库间迁移和同步问题而设计的高效工具。它能够帮助用户轻松地将数据从一个数据库系统迁移到另一个,或者实现两个或多个数据库之间的实时同步,确保数据的一致性...

    从一个数据库复制数据到另一个数据,跨服务器

    ### 数据库跨服务器数据复制详解 #### 背景与概念 在当今信息化时代,数据库作为数据存储的核心组件,在企业级应用中扮演着至关重要的角色。随着业务的发展和技术的进步,跨服务器之间的数据复制需求日益增多。例如...

    数据库复制技术

    - **基于物化视图的复制**:创建物化视图来存储复制数据,适用于大量数据的定期复制和汇总查询。 - **数据卫士复制**:包括物理备用数据库和逻辑备用数据库,前者提供实时的物理层复制,后者则是在事务级别进行复制...

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

    当需要跨不同的SQL服务器复制数据时,可以使用`OPENROWSET`函数或创建链接服务器。例如: ```sql INSERT INTO OPENROWSET('SQLOLEDB','目的服务器名';'sa';'',目的数据库.dbo.表) SELECT * FROM 源数据库..表 ``` ...

    跨数据中心的数据库双活及灾备建设经验分享

    ### 跨数据中心的数据库双活及灾备建设经验分享 #### 一、项目背景与目标 ##### 1.1 背景 随着信息技术的快速发展,金融行业面临着日益严峻的安全挑战和技术变革。对于银行而言,确保核心系统的稳定性和可靠性至...

    文件夹递归拷贝及跨数据库表间拷贝

    "BodyXRay"这个名字暗示可能是一个与医学影像或诊断相关的项目,可能包含了实现文件夹递归拷贝(例如,拷贝病人的影像数据)以及跨数据库表间拷贝(例如,同步病人信息到不同系统)的功能。具体代码的分析需要查看...

    Oracle复制表数据的两种用法

    这些工具和技术适用于更复杂的数据同步需求,例如跨数据库复制、灾难恢复或实时数据备份。 在实际工作中,选择哪种复制方法取决于具体的需求。如果只是简单的一次性数据迁移,`INSERT INTO SELECT`或`CTAS`就足够了...

    oracle 数据库复制 goldengate

    Oracle GoldenGate 是一款高效、灵活的数据复制解决方案,尤其适用于实现跨平台、跨数据库的数据实时同步。在Windows环境下,双节点数据库复制是构建高可用性和冗余的重要策略,以确保业务连续性和数据安全性。 ...

    mysql跨数据库复制表(在同一IP地址中)示例

    MySQL跨数据库复制表是数据库管理中常见的操作,特别是在开发和维护过程中,为了数据同步、备份或者测试环境的构建。在同一个IP地址中的不同数据库之间复制表数据,可以通过SQL语句直接实现,避免了编写程序的复杂性...

    access跨数据库查询示例

    跨数据库查询是指在一个数据库中查询并访问另一个数据库中的表或数据。Access支持这种类型的查询,使得用户能够在不同的数据库之间共享和交换数据。在Access中执行跨数据库查询时,通常需要使用到特殊的语法来指定...

    SQL基础语句.pdf

    - **复制表**:可以用于跨数据库复制表数据。 - **清理与优化**:包括`TRUNCATE TABLE`删除所有数据但保留表结构,`ALTER DATABASE`用于修改数据库属性,`DBCC SHRINKFILE`收缩数据库文件,`DBCC CHECKDB`检查...

Global site tag (gtag.js) - Google Analytics