首页 app开发 正文

导出20天的数据库(sqlserver导出数据库)

app开发 19
今天给各位分享导出20天的数据库的知识,其中也会对sqlserver导出数据库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!怎么导出数据库数据 给你个样例:imp username/password@SID file=导出位置 log=导出位置 full=y;imp system/system123@192.168.1.3/orcl file=e:test.dmp full=y ignore=y;

今天给各位分享导出20天的数据库的知识,其中也会对sqlserver导出数据库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

怎么导出数据库数据

给你个样例:

imp username/password@SID file=导出位置 log=导出位置 full=y;

imp system/system123@192.168.1.3/orcl file=e:test.dmp full=y ignore=y;

exp system/system123@192.168.1.3/orcl file=e:test.dmp full=y ignore=y;

怎么提取MYSQL数据库的所有数据到另一个MYSQL数据库

我今天使用过的命令如下:

导出数据

./mysqldump --host=localhost --port= --user=root --password= -l -f zcv3 v2_category v2_magazine /Data/sync_mysql/zcv3.txt

然后导入数据是用以下命令

./mysql --host=localhost --port= --user=root --password= zcv3 /Data/sync_mysql/zcv3.txt

mysqldump工具很多方面类似相反作用的工具mysqlimport。它们有一些同样的选项。但mysqldump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。

因此,如果您像装载整个数据库Meet_A_Geek的内容到一个文件中,可以使用下面的命令:

bin/mysqldump –p Meet_A_Geek MeetAGeek_Dump_File.txt

这个语句也允许您指定一个表进行dump(备份/导出/装载?)。如果您只是希望把数据库Meet_A_Geek中的表Orders中的整个内容导出到一个文件,可以使用下面的命令:

bin/mysqldump –p Meet_A_Geek Orders MeetAGeek_Orders.txt

这个非常的灵活,您甚至可以使用WHERE从句来选择您需要的记录导出到文件中。要达到这样的目的,可以使用类似于下面的命令:

bin/mysqldump –p –where="Order_ID 2000" Meet_A_Geek Orders Special_Dump.txt

mysqldump工具有大量的选项,部分选项如下表:

选项/Option 作用/Action Performed

--add-drop-table

这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除

--add-locks

这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作

-c or - complete_insert

这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。

--delayed-insert 在INSERT命令中加入DELAY选项

-F or -flush-logs 使用这个选项,在执行导出之前将会刷新MySQL服务器的log.

-f or -force 使用这个选项,即使有错误发生,仍然继续导出

--full 这个选项把附加信息也加到CREATE TABLE的语句中

-l or -lock-tables 使用这个选项,导出表的时候服务器将会给表加锁。

-t or -no-create- info

这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。

-d or -no-data 这个选项使的mysqldump命令不创建INSERT语句。

比较完整的使用方法:《MySQL 备份和恢复》

导出数据库

用SQL语句复制表和数据库:

1.复制表结构:只能复制表的字段,不能复制主键、索引等

select top 0 * into 新表名 from 原表名

2.复制整个数据库结构及数据:

CREATE DATABASE Test --创建目标数据库

EXEC P_CopyDB @Source_DB='aspnet',@Des_DB='test' --把源数据库整个复制到目标数据库

-----------------------创建存储过程开始--------------------

CREATE PROCEDURE P_CopyDB

@Des_DB sysname, --目标数据库

@Obj_Type nvarchar(4000)=N'',--复制的对象类型,可以是下列字符串列表:

-- O 所有对象,D 默认值,R 规则,P 存储过程

-- T 表,TR 触发器,DT 用户定义数据类型

-- V 视图,DATA 数据,DEL 删除目标对象

@Source_DB sysname=N'', --源数据库

@ServerName sysname=N'', --服务器名

@UserName sysname=N'', --用户名,不指定则表示使用 Windows 身份登录

@pwd sysname=N'' --密码

AS

SET NOCOUNT ON

DECLARE @srvid int,@Dbid int,@S_dbid int,@D_dbid int,@TransferID int,

@err int,@src varchar(255), @desc varchar(255)

IF ISNULL(@ServerName,N'')=N'' SET @ServerName='.'--默认为本地数据库

IF ISNULL(@Source_DB,N'')=N'' SET @Source_DB=DB_NAME()

--创建sqldmo对象·

EXEC @err=sp_oacreate 'sqldmo.sqlserver',@srvid OUT

IF @err0 GOTO lb_Err

--连接服务器

IF ISNULL(@UserName,N'')=N'' --使用 Windows 身份登录

BEGIN

EXEC @err=sp_oasetproperty @srvid,'loginsecure',-1

IF @err0 GOTO lb_Err

EXEC @err=sp_oamethod @srvid,'connect',NULL,@servername

END

ELSE

EXEC @err=sp_oamethod @srvid,'connect',NULL,@servername,@UserName,@pwd

IF @err0 GOTO lb_Err

--获取数据库集

EXEC @err=sp_oagetproperty @srvid,'databases',@Dbid OUT

IF @err0 GOTO lb_Err

--选择源数据库

EXEC @err=sp_oamethod @Dbid,'item',@S_dbid OUT,@Source_DB

IF @err0 GOTO lb_Err

--选择目标数据库

EXEC @err=sp_oamethod @Dbid,'item',@D_dbid OUT,@Des_DB

IF @err0 GOTO lb_Err

--设置复制的对象

EXEC @err=sp_oacreate 'SQLDMO.Transfer',@TransferID OUT

IF @err0 GOTO lb_Err

--设置目标服务器信息

EXEC @err=sp_oasetproperty @TransferID,'DestServer',@ServerName

IF @err0 GOTO lb_Err

--设置连接用户

IF ISNULL(@UserName,N'')=N'' --使用 Windows 身份登录

BEGIN

EXEC @err=sp_oasetproperty @TransferID,'DestUseTrustedConnection',1

IF @err0 GOTO lb_Err

END

ELSE

BEGIN

EXEC @err=sp_oasetproperty @TransferID,'DestLogin',@UserName

IF @err0 GOTO lb_Err

EXEC @err=sp_oasetproperty @TransferID,'DestPassword',@pwd

IF @err0 GOTO lb_Err

END

--设置复制对象信息

EXEC @err=sp_oasetproperty @TransferID,'DestDatabase',@Des_DB

IF @err0 GOTO lb_Err

DECLARE tb CURSOR FAST_FORWARD LOCAL

FOR

SELECT Name FROM(

SELECT KeyWord=N',D,', Name=N'CopyAllDefaults' UNION ALL

SELECT KeyWord=N',O,', Name=N'CopyAllObjects' UNION ALL

SELECT KeyWord=N',R,', Name=N'CopyAllRules' UNION ALL

SELECT KeyWord=N',P,', Name=N'CopyAllStoredProcedures' UNION ALL

SELECT KeyWord=N',T,', Name=N'CopyAllTables' UNION ALL

SELECT KeyWord=N',TR,', Name=N'CopyAllTriggers' UNION ALL

SELECT KeyWord=N',DT,', Name=N'CopyAllUserDefinedDatatypes' UNION ALL

SELECT KeyWord=N',V,', Name=N'CopyAllViews' UNION ALL

SELECT KeyWord=N',DATA,',Name=N'CopyData' UNION ALL

SELECT KeyWord=N',DEL,', Name=N'DropDestObjectsFirst'

)A WHERE CHARINDEX(KeyWord,

CASE WHEN ISNULL(@Obj_Type,N'')='' THEN ',O,DATA,' ELSE @Obj_Type END)0

OPEN tb

FETCH tb INTO @src

WHILE @@FETCH_STATUS=0

BEGIN

EXEC @err=sp_oasetproperty @TransferID,@src,1

IF @err0 GOTO lb_Err

FETCH tb INTO @src

END

CLOSE tb

DEALLOCATE tb

--复制对象

EXEC @err=sp_oamethod @S_dbid,'Transfer',null,@TransferID

IF @err0 GOTO lb_Err

--结束

SET @err=0

GOTO lb_Exit

--错误处理

lb_Err:

EXEC sp_oageterrorinfo NULL, @src OUT, @desc OUT

RAISERROR(N'错误编号 %#x, 错误源 "%s", 错误描述 "%s"',16,1,@err,@src,@desc)

RETURN -1

lb_Exit:

EXEC sp_OADestroy @Dbid

EXEC sp_OADestroy @srvid

EXEC sp_OADestroy @TransferID

RETURN @err

GO

-----------------------创建存储过程结束--------------------

如何导出DB数据库的数据

一、导出导入SQL Server里某个数据库

1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务-备份数据库。

2.备份 选数据库-完全,

目的 备份到 按添加按钮

文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)

重写 选重写现有媒体

最后按确定按钮。

如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。

3.通过FTP或者remote desktop或者pcanywhere等方法

把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。

4.目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库;

然后选中这个新创建的数据库,按鼠标右键,选所有任务-还原数据库

还原-从设备-选择设备-磁盘-添加(找到要导入的备份数据库文件名)-确定

还原备份集-数据库-完全

最后按确定按钮。完全的数据库导入成功了。

(如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,

可以去看 -管理-当前活动-锁/对象-找到数据库下锁的进程号-到查询分析器里用kill 进程号杀掉这些锁,然后再做还原)

注意:如果在原有的目的SQL Server数据库上从备份文件(*.bak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。

如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;

新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。

二、导出导入SQL Server里某个表

1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问

在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选所有任务-导入数据- 弹出数据转换服务导入/导出向导窗口-下一步-选数据源- 数据源(用于SQL Server的Microfost OLE DB提供程序)-服务器(可选择局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)-选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)-数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)-下一步-选择目的-目的(用于SQL Server的Microfost OLE DB提供程序)-服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)-目的数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)-下一步-制定表复制或查询-选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)-下一步-选择源表和视图-在要导入的表和视图前面选中源-目的出现同样的表名(可以手工修改成别的表名)-转换-列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项-确定-下一步-保存、调度和复制包-时间-立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)-保存(可以不选)-[ 保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,存到SQL Server即可,保存的时候要输入DTS的包名及详细描述)-下一步- ]-完成

正在执行包-图形界面显示创建表及插入记录的步骤和状态-完成

2.经过防火墙,不在同一个局域网里

①、导出表里的数据到文本文件:

在SQL Server企业管理器里选中目的数据库,按鼠标右键,选所有任务- 导入数据-弹出数据转换服务导入/导出向导窗口-下一步-选数据源- 数据源(用于SQL Server的Microfost OLE DB提供程序)-服务器(可选择局域网内能访问到的所有SQL Server服务器)-选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)-数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)-下一步-选择目的-目的(文本文件)- 文件名(在自己的电脑硬盘中生成一个自定义的文本文件) -下一步-制定表复制或查询-选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)-下一步-选择目的文件格式-源(选择要导出的表)-用默认的带分隔符-选第一行包含有列名称选项-下一步-保存、调度和复制包-时间-立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)-保存(可以不选)- [保存DTS包(保存的时候要输入DTS的包名及详细描述)-下一步-]-完成

正在执行包-图形界面显示表到文本文件的步骤和状态-完成

如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。

②、通过FTP或者remote desktop或者pcanywhere等方法把

第①步生成的文本文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。

③、把文本文件导入目的SQL Server数据库

直接把文本文件导入目的SQL Server数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。

所以我们要这样做:

在源SQL Server数据库上先生成创建表的sql语句

在SQL Server查询分析器里-选中源数据库里表名-按右键-在新窗口中编写对象脚本-创建-复制下新窗口内创建表名的sql语句到目标SQL Server数据库上查询分析器里执行创建表名的sql语句,生成空表结构。(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)

调用导入/导出工具-弹出数据转换服务导入/导出向导窗口-下一步-选数据源- 数据源(文本文件)-文件名(已传到目的SQL Server数据库下要导入的文本文件,后缀可以不是*.txt,但是常规文本编辑器能打开的文件,文件类型选全部)-下一步-选择文件格式-用默认的带分隔符-选第一行包含有列名称选项-下一步-制定列分割符-逗号-下一步-选择目的-目的(用于SQL Server的Microfost OLE DB提供程序)-服务器(可选择目标局域网内能访问到的所有SQL Server服务器)- 选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)-数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)-下一步-选择源表和视图-修改目的表名为刚才创建的表名-转换(在目的表中追加行) -下一步-保存、调度和复制包-时间-立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)-保存(可以不选)- [保存DTS包(保存的时候要输入DTS的包名及详细描述)-下一步-]-完成

正在执行包-图形界面显示文本文件到表的步骤和状态-完成

如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。这会对应用程序里频繁访问的表照成一定的中断。

注意:源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。

标志种子和not null的约束可以继承过来。

导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。

三、SQL Server存储过程或用户定义的函数导出导入

1、导出存储过程或用户定义的函数成*.sql文件

在SQL Server企业管理器里选中源数据库,存储过程-单选或者多选中要转移的存储过程-用户定义的函数-单选或者多选中要转移的函数-按鼠标右键,选所有任务-生成SQL脚本-确定-在自己的电脑硬盘中生成一个自定义的*.sql文件-保存-正在生成SQL脚本-成功

2、如果目的数据库经过防火墙,不在同一个局域网里,要通过FTP或者remote desktop或者pcanywhere等方法把第1步生成的*.sql文件传到目的SQL Server数据库服务器上。

3、用查询分析器进入SQL Server目的数据库,从菜单里选文件-打开-打开查询文件-选中第1步生成的*.sql文件-点执行查询的绿色倒三角型快捷键-查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系,会报一些错。

最好先执行用户定义的函数的*.sql文件,再执行存储过程的*.sql文件)

四、ORACLE数据库里表导入SQL Server数据库

1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver. 在$ORACLE_HOMEnetworkadmintnsnames.ora里配置ORACLE数据库的别名(service name)。

具体配置方法可以参考本站文章:客户端连服务器的注意事项

2、在WIN2000或者win2003服务器-管理工具-数据源(ODBC)-系统DSN(本机器上NT域用户都可以用)-添加-ORACLE ODBC Driver-完成-data source name 可以自定义,我一般填ORACLE数据库的sid标志,description里可以填ORACLE数据库详细描述,也可以不填-data source service name 填第1步定义的ORACLE数据库别名-OK。

(用户DSN和文件DSN也可以类似配置,但使用的时候有一些限制)

3、SQL Server的导入和导出数据工具里-选数据源- 数据源(其它(ODBC数据源))-选第2步在ODBC里定义的系统DSN source name,用户名密码处填写ORACLE系统的用户名和密码-下一步-选择目的,选SQL Server数据库(跟上面第二点讲的一致,就不重复了)。

注意:在ORACLE表和SQL Server表之间'转换'那步很重要,可以改变默认的字段数据类型,如image-text,decimal-int

五、SQL Server数据库里表导入ORACLE数据库

方法一.导出目的选通过ODBC数据源里定义的ORACLE数据库, 注意ORACLE里表名都是大写的.我一般在ORACLE这边先生成好表结构,再选择SQL SERVER源表往ORACLE目的表里追加数据.数据传输速度比方法二慢.

方法二.从SQL Server数据库导入数据到ORACLE数据库可以选择用Windows下ORACLE9i企业或者个人版数据库做中转。

关于导出20天的数据库和sqlserver导出数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

导出20天的数据库 navicat导出数据库sqlserver导出数据库oracle导出数据库怎么导出数据库文件navicat怎么导出数据库mysql怎么导出数据库mysql导出整个数据库数据库怎么导出数据mysql数据库导出oracle导出数据库
扫码二维码