SQLServer导入、导出、备份数据方法
2023-06-13 09:14:07 时间
一、导出导入SQLServer里某个数据库
1.在SQLServer企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。
2.备份选数据库-完全,
目的备份到按添加按钮
文件名在SQLServer服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)
重写选重写现有媒体
最后按确定按钮。
如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。
3.通过FTP或者remotedesktop或者pcanywhere等方法
把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQLServer数据库,如果有压缩要解压。
4.目的SQLServer数据库如果还没有此数据库,先创建一个新的数据库;
然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库
还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定
还原备份集->数据库-完全
最后按确定按钮。完全的数据库导入成功了。
(如果在已经存在的SQLServer数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,
可以去看->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill进程号杀掉这些锁,
然后再做还原)
注意:如果在原有的目的SQLServer数据库上从备份文件(*.bak)还原数据库
会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。
如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,
其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;
新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。
二、导出导入SQLServer里某个表
1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问
在SQLServer企业管理器里选中目的数据库,按鼠标右键,选所有任务->导入数据->
弹出数据转换服务导入/导出向导窗口->下一步->
选数据源->数据源(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(可选择局域网内能访问到的所有SQLServer服务器,或者直接输入IP地址)->
选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->
数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
选择目的->目的(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQLServer服务器,或者直接输入IP地址)->
目的数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->
选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)->
转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,
并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步->
保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)->
保存(可以不选)->[保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,
存到SQLServer即可,保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示创建表及插入记录的步骤和状态->完成
2.经过防火墙,不在同一个局域网里
①、导出表里的数据到文本文件:
在SQLServer企业管理器里选中目的数据库,按鼠标右键,选所有任务->
导入数据->弹出数据转换服务导入/导出向导窗口->下一步->
选数据源->数据源(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(可选择局域网内能访问到的所有SQLServer服务器)->
选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->
数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
选择目的->目的(文本文件)->文件名(在自己的电脑硬盘中生成一个自定义的文本文件)->下一步->
制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->
选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->
保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->
保存(可以不选)->[保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示表到文本文件的步骤和状态->完成
如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。
②、通过FTP或者remotedesktop或者pcanywhere等方法把
第①步生成的文本文件或者其压缩后的文件传到目的SQLServer数据库,如果有压缩要解压。
③、把文本文件导入目的SQLServer数据库
直接把文本文件导入目的SQLServer数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。
所以我们要这样做:
在源SQLServer数据库上先生成创建表的sql语句
在SQLServer查询分析器里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->
复制下新窗口内创建表名的sql语句
到目标SQLServer数据库上查询分析器里执行创建表名的sql语句,生成空表结构。
(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)
调用导入/导出工具->弹出数据转换服务导入/导出向导窗口->下一步->
选数据源->数据源(文本文件)->
文件名(已传到目的SQLServer数据库下要导入的文本文件,后缀可以不是*.txt,
但是常规文本编辑器能打开的文件,文件类型选全部)->下一步->
选择文件格式->用默认的带分隔符->选第一行包含有列名称选项->下一步->
制定列分割符->逗号->下一步->
选择目的->目的(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(可选择目标局域网内能访问到的所有SQLServer服务器)->
选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->
数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
选择源表和视图->修改目的表名为刚才创建的表名->转换(在目的表中追加行)->下一步->
保存、调度和复制包->
时间->立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)->
保存(可以不选)->[保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示文本文件到表的步骤和状态->完成
如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,
在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。
这会对应用程序里频繁访问的表照成一定的中断。
注意:源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。
标志种子和notnull的约束可以继承过来。
导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。
三、SQLServer存储过程或用户定义的函数导出导入
1、导出存储过程或用户定义的函数成*.sql文件
在SQLServer企业管理器里选中源数据库,
存储过程->单选或者多选中要转移的存储过程->
用户定义的函数->单选或者多选中要转移的函数->
按鼠标右键,选所有任务->生成SQL脚本->确定->在自己的电脑硬盘中生成一个自定义的*.sql文件->
保存->正在生成SQL脚本->成功
2、如果目的数据库经过防火墙,不在同一个局域网里,
要通过FTP或者remotedesktop或者pcanywhere等方法把第1步生成的*.sql文件传到目的SQLServer数据库服务器上。
3、用查询分析器进入SQLServer目的数据库,
从菜单里选文件->打开->打开查询文件->选中第1步生成的*.sql文件->点执行查询的绿色倒三角型快捷键->
查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系,会报一些错。
最好先执行用户定义的函数的*.sql文件,再执行存储过程的*.sql文件)
四、ORACLE数据库里表导入SQLServer数据库
1、在目的SQLServer数据库服务器上安装ORACLEClient软件或者ORACLEODBCDriver.
在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE数据库的别名(servicename)。
具体配置方法可以参考本站文章:客户端连服务器的注意事项
2、在WIN2000或者win2003服务器->管理工具->数据源(ODBC)->
系统DSN(本机器上NT域用户都可以用)->添加->ORACLEOD
个人体会:
SQLServer2005里“生成脚本”这个功能来生成所有的内容。SP亦可,好处是可以同时把所有的SP生成在一个文件里,那么也只要执行一下就把所有的SP放在新的数据库里了。同理,关于表,视图等其他也是这样的。
1.在SQLServer企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。
2.备份选数据库-完全,
目的备份到按添加按钮
文件名在SQLServer服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)
重写选重写现有媒体
最后按确定按钮。
如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。
3.通过FTP或者remotedesktop或者pcanywhere等方法
把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQLServer数据库,如果有压缩要解压。
4.目的SQLServer数据库如果还没有此数据库,先创建一个新的数据库;
然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库
还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定
还原备份集->数据库-完全
最后按确定按钮。完全的数据库导入成功了。
(如果在已经存在的SQLServer数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,
可以去看->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill进程号杀掉这些锁,
然后再做还原)
注意:如果在原有的目的SQLServer数据库上从备份文件(*.bak)还原数据库
会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。
如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,
其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;
新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。
二、导出导入SQLServer里某个表
1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问
在SQLServer企业管理器里选中目的数据库,按鼠标右键,选所有任务->导入数据->
弹出数据转换服务导入/导出向导窗口->下一步->
选数据源->数据源(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(可选择局域网内能访问到的所有SQLServer服务器,或者直接输入IP地址)->
选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->
数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
选择目的->目的(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQLServer服务器,或者直接输入IP地址)->
目的数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->
选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)->
转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,
并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步->
保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)->
保存(可以不选)->[保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,
存到SQLServer即可,保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示创建表及插入记录的步骤和状态->完成
2.经过防火墙,不在同一个局域网里
①、导出表里的数据到文本文件:
在SQLServer企业管理器里选中目的数据库,按鼠标右键,选所有任务->
导入数据->弹出数据转换服务导入/导出向导窗口->下一步->
选数据源->数据源(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(可选择局域网内能访问到的所有SQLServer服务器)->
选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->
数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
选择目的->目的(文本文件)->文件名(在自己的电脑硬盘中生成一个自定义的文本文件)->下一步->
制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->
选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->
保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->
保存(可以不选)->[保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示表到文本文件的步骤和状态->完成
如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。
②、通过FTP或者remotedesktop或者pcanywhere等方法把
第①步生成的文本文件或者其压缩后的文件传到目的SQLServer数据库,如果有压缩要解压。
③、把文本文件导入目的SQLServer数据库
直接把文本文件导入目的SQLServer数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。
所以我们要这样做:
在源SQLServer数据库上先生成创建表的sql语句
在SQLServer查询分析器里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->
复制下新窗口内创建表名的sql语句
到目标SQLServer数据库上查询分析器里执行创建表名的sql语句,生成空表结构。
(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)
调用导入/导出工具->弹出数据转换服务导入/导出向导窗口->下一步->
选数据源->数据源(文本文件)->
文件名(已传到目的SQLServer数据库下要导入的文本文件,后缀可以不是*.txt,
但是常规文本编辑器能打开的文件,文件类型选全部)->下一步->
选择文件格式->用默认的带分隔符->选第一行包含有列名称选项->下一步->
制定列分割符->逗号->下一步->
选择目的->目的(用于SQLServer的MicrofostOLEDB提供程序)->
服务器(可选择目标局域网内能访问到的所有SQLServer服务器)->
选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->
数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->
选择源表和视图->修改目的表名为刚才创建的表名->转换(在目的表中追加行)->下一步->
保存、调度和复制包->
时间->立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)->
保存(可以不选)->[保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示文本文件到表的步骤和状态->完成
如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,
在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。
这会对应用程序里频繁访问的表照成一定的中断。
注意:源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。
标志种子和notnull的约束可以继承过来。
导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。
三、SQLServer存储过程或用户定义的函数导出导入
1、导出存储过程或用户定义的函数成*.sql文件
在SQLServer企业管理器里选中源数据库,
存储过程->单选或者多选中要转移的存储过程->
用户定义的函数->单选或者多选中要转移的函数->
按鼠标右键,选所有任务->生成SQL脚本->确定->在自己的电脑硬盘中生成一个自定义的*.sql文件->
保存->正在生成SQL脚本->成功
2、如果目的数据库经过防火墙,不在同一个局域网里,
要通过FTP或者remotedesktop或者pcanywhere等方法把第1步生成的*.sql文件传到目的SQLServer数据库服务器上。
3、用查询分析器进入SQLServer目的数据库,
从菜单里选文件->打开->打开查询文件->选中第1步生成的*.sql文件->点执行查询的绿色倒三角型快捷键->
查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系,会报一些错。
最好先执行用户定义的函数的*.sql文件,再执行存储过程的*.sql文件)
四、ORACLE数据库里表导入SQLServer数据库
1、在目的SQLServer数据库服务器上安装ORACLEClient软件或者ORACLEODBCDriver.
在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE数据库的别名(servicename)。
具体配置方法可以参考本站文章:客户端连服务器的注意事项
2、在WIN2000或者win2003服务器->管理工具->数据源(ODBC)->
系统DSN(本机器上NT域用户都可以用)->添加->ORACLEOD
个人体会:
SQLServer2005里“生成脚本”这个功能来生成所有的内容。SP亦可,好处是可以同时把所有的SP生成在一个文件里,那么也只要执行一下就把所有的SP放在新的数据库里了。同理,关于表,视图等其他也是这样的。
相关文章
- SQLserver字符串转日期_sqlserver合并字符串
- SQLServer客户端如何连接服务器?(sqlserver客户端)
- 如何快速有效地导入SQLServer(导入sqlserver)
- 关键字SqlServer中闭包关键字的应用(sqlserver闭包)
- 展示SQLServer锁机制的精彩过程(sqlserver锁过程)
- SQLServer表:读写,轻松搞定(sqlserver表读写)
- 型从SQLServer类型中获取最佳性能!(sqlserver类)
- 『SqlServer数据库中的分组功能』(sqlserver的分组)
- 探索SQLServer: 找出合适的键(sqlserver查看键)
- sqlserver中差集运算的探究(sqlserver 差集)
- SQLServer数据导出实现到R格式的简易步骤(sqlserver导出r)
- SQL Server保护账号安全:实施密码策略(sqlserver密码策略)
- Excel直接导入SQLServer,数据一步到位(excel导入sqlserver)
- 利用SQLServer外部表拓展数据库存储空间(sqlserver外部表)
- SQL Server中实现行数据复制(sqlserver复制行)
- SQL Server: 寻找技术的宝藏(sqlserver在哪看)
- 提高安全性:使用SQLServer加密表(sqlserver加密表)
- SQL Server互联技术应用探索(sqlserver互联)
- SQL Server 专业版——让数据库管理更轻松(sqlserver专业版)
- 深入探讨SqlServer的一致性(sqlserver一致性)
- SQL Server PC下的数据库操作实践(sqlserver pc)
- SQLServer数据导入技巧(sqlserver导数据)
- 感谢SQLServer——我们的有力助手(sqlserver致谢)
- SqlServer强制断开数据库已有连接的方法