如何使用SQL Server命令BCP 导入导出EXCEL数据

如何使用SQL Server命令BCP 导入导出EXCEL数据,第1张

导出数据命令:

mysqldump -u root -p mydb2 > e:\mydbsql

数据库mydb2导出到e盘的mydbsql

注意:在dos下进入mysql安装的bin目录下,但是不要登陆。

导入数据库命令:

mysqldump -u root -p mydb2 < e:\mydbsql

把数据库e盘的mydbsql导入到mydb2

注意:要先新建mydb2 然后使用导入语句

oracle 用户创建 数据库的导入导出imp/exp

可以在SQLPLUSEXE或者DOS(命令行)中执行执行环境:可以在SQLPLUSEXE或者DOS(命令行)中执行,

DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,

该目录下有EXPEXE与IMPEXE文件被用来执行导入导出。

创建用户

给用户增加导入数据权限的 *** 作

第一,启动sqlpuls

第二,以system/manager登陆

第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,

DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,

DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字

第五, 运行-cmd-进入dmp文件所在的目录,

imp userid=system/manager full=y file=dmp

或者 imp userid=system/manager full=y file=filenamedmp

执行示例:

F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notifydmp 17jquerycom

下面介绍的是导入导出的实例。

数据导出:

1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochudmp中

exp system/manager@TEST file=d:daochudmp full=y

exp fang/fang@ORCL file=d:oais20100401dmp full=y

exp oais/oais@ORCL file=d:oais_mjdmp full=y

2 将数据库中system用户与sys用户的表导出

exp system/manager@TEST file=d:daochudmp owner=(system,sys)

3 将数据库中的表inner_notify、notify_staff_relat导出

exp aichannel/aichannel@TESTDB2 file= d:datanewsmgntdmp tables=(inner_notify,notify_staff_relat)

exp fang/fang@ORCL file=d:oais20100401_essmenudmp tables=(essmenu)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

exp system/manager@TEST file=d:daochudmp tables=(table1) query=" where filed1 like '00%'"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

也可以在上面命令后面 加上 compress=y 来实现。 一起jquery,17jquery

数据的导入

1 将D:daochudmp 中的数据导入 TEST数据库中。

imp system/manager@TEST file=d:daochudmp

imp aichannel/aichannel@HUST full=y file=d:datanewsmgntdmp ignore=y

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上 ignore=y 就可以了。

2 将d:daochudmp中的表table1 导入

imp system/manager@TEST file=d:daochudmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 MSSQL的导入导出有三种方法,不可以在cmd模式下进行:1使用Transact-SQL进行数据导入导出 我们很容易看出,Transact-SQL方法就是通过SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。 SELECT INTO table2 FROM table1 --table1和table2的表结构相同 INSERT INTO table2 SELECT FROM table3 --table2和table3的表结构相同 当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。 在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并 *** 作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。 2 使用命令行BCP导入导出数据 很多大型的系统不仅仅提供了友好的图形用户接口,同时也提供了命令行方式对系统进行控制。在SQL Server中除了可以使用SQL语句对数据进行 *** 作外,还可以使用一个命令行工具BCP对数据进行同样的 *** 作。BCP是基于DB-Library 客户端库的工具。它的功能十分强大,BCP能够以并行方式将数据从多个客户端大容量复制到单个表中,从而大大提高了装载效率。但在执行并行 *** 作时要注意的是只有使用基于 ODBC 或 SQL OLE DB 的 API 的应用程序才可以执行将数据并行装载到单个表中的 *** 作。 BCP可以将SQL Server中的数据导出到任何OLE DB所支持的数据库的,如下面的语句是将authors表导出到excel文件中。 bcp pubsdboauthors out c:\temp1xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P"password" BCP不仅能够通过命令行执行,同时也可以通过SQL执行,这需要一个系统存储过程xp_cmdshell来实现,如上面的命令可改写为如下形式。 EXEC masterxp_cmdshell 'bcp pubsdboauthors out c:\temp1xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P"password"' 3 使用数据转换服务(DTS)导入导出数据 DTS是SQL Server中导入导出数据的核心,它除有具有SQL和命令行工具BCP相应的功能外,还可以灵活地通过VBScript、JScript等脚本语言对数据进行检验、净化和转换。 SQL Server为DTS提供了图形用户接口,用户可以使用图形界面导入导出数据,并对数据进行相应的处理。同时,DTS还以com组件的形式提供编程接口,也就是说任何支持com组件的开发工具都可以利用com组件使用DTS所提供的功能。DTS在SQL Server中可以保存为不同的形式,可以是包的形式,也可以保存成Visual Basic源程序文件,这样只要在VB中编译便可以使用DTS com组件了。 DTS和其它数据导入导出方式最大的不同就是它可以在处理数据的过程中对每一行数据进行深度处理。以下是一段VBScript代码,这段代码在处DTS理每一条记录时执行,DTSDestination表示目标记录,DTSSource表示源记录,在处理“婚姻状况”时,将源记录中的“婚姻状况”中的0或1转换成目标记录中“已婚”或“未婚”。 Function Main() DTSDestination("姓名") = DTSSource("姓名") DTSDestination("年龄") = DTSSource("年龄") If DTSDestination("婚姻状况") = 1 Then DTSDestination("婚姻状况") = "已婚" Else DTSDestination("婚姻状况") = "未婚" End If Main = DTSTransformStat_OK End Function

为了应用系统的可伸缩性,往往需要对数据库进行scale

out设计,scale

out设计也就是通过增加数据库处理节点来提高系统整体的处理能力,即增加数据库服务器的数量来分担压力。通过这种方式系统的伸缩性增强了,成本也降低了,但是系统的架构复杂了,维护困难了。难免出现系统的宕机或故障。因此,理论上来说,系统的安全性(可能数据丢失)降低了,可用性也降低了。那么要提高数据安全性,以及系统的高可用性,很简单的办法就是所有软硬件都避免单点隐患,所有数据都保存多份。从技术上来说,就可以通过数据库复制技术实现。MySQL的Replication技术就是数据库复制的实现手段之一。

关于MySQL的Replication,有几种可选的架构方案,如常规的复制架构Master-Slave方案,Dual

Master架构方案,以及级联复制架构方案,今天重点看看最简单的Master-Slave方案,其架构图如下所示:

这种架构方案,也就是一台MySQL服务器作为主服务器,主要负责应用客户端的写数据处理,同时供其他的一些作为Slave的MySQL服务器复制数据的源。而那些Slave服务器上的数据都是master服务器数据的完全备份,相对实时备份,这些备份数据主要供应用客户端的读数据使用,因为一般应用系统的读数据的压力都比写数据的压力大,特别是web应用系统。

遇到了以下错误:在数据库‘master'中拒绝CREATE DATABASE权限。

经查阅资料得知,运行 SQL Server 数据库,就必须在实例下创建数据库,不管是直接创建、还是附加、还是还原,总之都得在实例下创建。

于是,修改连接字符串,

<add name="SE_DBConnectionString" connectionString="Data Source=sqlexpress;Initial Catalog=SE_DB;Integrated Security=True;Pooling=False;User Instance=True" providerName="SystemDataSqlClient" />

添加User Instance=True,即可使用实例成功创建数据库。

要在 SQL Server 2000 中转换数据库的排序规则,请按照下列步骤 *** 作:

1 备份源数据库。

2 注意所有列是否使用 COLLATE 子句。

3 使用适当的排序规则在目标服务器上创建新的数据库。

4 如果没有列使用 COLLATE 子句,请使用 DTS 将数据传输到目标服务器。为此,请启用“使用排序规则”选项以进行代码页转换,并将数据转换为目标数据库上的新排序规则。如果所有列均使用 COLLATE 子句,请按照下列步骤 *** 作:

a 为所有对象(不包括索引、触发器、主键、外键、默认设置和约束)生成脚本。此外,确保启用了“仅为与 70 版兼容的功能编写脚本”选项,以便从脚本删除 COLLATE 子句。

注意:使用“仅为与 70 版兼容的功能编写脚本”选项时,可以更改排序规则。但是,生成脚本时将不考虑任何新的 SQL Server 2000 选项(包括用户定义的函数、扩展属性、INSTEAD OF 触发器和视图上的索引)。

b 在目标数据库上运行步骤 a 中创建的脚本,以便使用目标数据库的排序规则创建对象。

c 使用 DTS 仅传输源数据库中的数据。

d 成功传输数据后,将会为源数据库中的所有约束、外键、主键和索引生成脚本。

e 在目标数据库上运行步骤 d 中创建的脚本。

更改 master 数据库的排序规则

如果要更改 master 数据库的排序规则,则必须重建 master 数据库。在重建 master 数据库时,实质上是创建了新的 master 数据库。因此,重建 master 数据库之前,应考虑下列事项:

确保创建了当前 master 数据库的有效备份。在重建 master 数据库时,还会重建 msdb 数据库和 model 数据库。因此,在重建 master 数据库之前必须备份 msdb 数据库和 model 数据库。msdb 数据库是用于存储 SQL Server 作业、警报、运算符和 DTS 包的系统数据库。model 数据库是创建新数据库时所使用的模板数据库。

因为重建 master 数据库会创建一个新的 master 数据库,所以必须在重建 master 数据库之后重新输入现有登录信息。因此,还必须在重建 master 数据库之前导出登录信息,然后在重建 master 数据库后,导入登录信息。

因为在重建 master 数据库时会重建 msdb 数据库,所以在重建 master 数据库之前,必须为所有作业、警报和运算符生成脚本。此外,还必须确保移动了所有 DTS 包。

因为在重建 master 数据库时会重建 model 数据库,所以在重建 master 数据库之前,必须记下或导出以前对 model 数据库所做的全部更改或为其生成脚本。重建 model 数据库之后,请重新应用已记录的全部更改。

以上就是关于如何使用SQL Server命令BCP 导入导出EXCEL数据全部的内容,包括:如何使用SQL Server命令BCP 导入导出EXCEL数据、基于MySQL数据库复制Master-Slave架构的分析、数据库中master中不存在等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10146253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存