SQL Server导入、导出、备份数据方法_MsSql

一、导出导入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_HOME\network\admin\tnsnames.ora里配置ORACLE数据库的别名(service name)。
  具体配置方法可以参考本站文章:客户端连服务器的注意事项
  2、在WIN2000或者win2003服务器->管理工具->数据源(ODBC)->
  系统DSN(本机器上NT域用户都可以用)->添加->ORACLE OD

个人体会:
SQL Server2005里“生成脚本”这个功能来生成所有的内容。SP亦可,好处是可以同时把所有的SP生成在一个文件里,那么也只要执行一下就把所有的SP放在新的数据库里了。同理,关于表,视图等其他也是这样的。

时间: 2024-11-03 06:52:58

SQL Server导入、导出、备份数据方法_MsSql的相关文章

SQL Server导入导出数据时最常见的一个错误解决方法_MsSql

现在建站主要使用的还是ASP与PHP,这两种语言一般使用的数据库分别为SQL Server和mysql,这两种数据库各有各长处,也说不上谁好谁坏,看个人习惯了. SQL Server 导入和导出向导的作用是将数据从源复制到目标.该向导还可以为您创建目标数据库和目标表.但是,如果必须复制多个数据库或表,或者必须复制其他类型的数据库对象,则应改用复制数据库向导. 在数据库导入导出时总失败,错误信息如下: 复制代码 代码如下: 正在验证 (错误) 消息 错误 0xc0202049: 数据流任务 1:

SQL Server导入导出数据时最常见的一个错误解决方法

现在建站主要使用的还是ASP与PHP,这两种语言一般使用的数据库分别为SQL Server和mysql,这两种数据库各有各长处,也说不上谁好谁坏,看个人习惯了. SQL Server 导入和导出向导的作用是将数据从源复制到目标.该向导还可以为您创建目标数据库和目标表.但是,如果必须复制多个数据库或表,或者必须复制其他类型的数据库对象,则应改用复制数据库向导. 在数据库导入导出时总失败,错误信息如下: 复制代码 代码如下: 正在验证 (错误) 消息 错误 0xc0202049: 数据流任务 1:

SQL Server中网络备份一例_MsSql

复制代码 代码如下: use master  declare @dir varchar(256),@dir_db varchar(256),          @verb varchar(256),@cmd varchar(256),          @backup_name varchar(256),@dynamic_name varchar(10),          @disk_name varchar(256)  --建立网络连接  exec xp_cmdshell 'net use 

Oracle数据导入导出10g数据方法

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用. 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,  DOS中可以执行时由于 在oracle 8i 中  安装目录ora81BIN被设置为全局路径,  该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出

解析PL/SQL Developer导入导出数据库的方法以及说明_oracle

PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍. 导出步骤:    1 tools ->export user object 选择选项,导出.sql文件.    2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件.导入步骤:    注:导入之前最好把以前的表删除

SQL Server 比较日期大小的方法_MsSql

在机房收费系统中,有几处这样的情况: 起始日期和终止日期,相信聪明的你肯定可以想象出为什么要有两个日期控件!是的,就是从一张表中查找出在这两个日期范围类的记录! 有的人就说了,这还不简单! 假如我们将第一个控件定义成Begin,第二个控件定义成Over!那么查询语句不就是 复制代码 代码如下: "select * from recharge_info where date<'" & over.value & "' and date>'"

SQL2000安装后,SQL Server组无项目解决方法_MsSql

昨天装了个SQL2000,打开企业管理器,发现SQL Server组下面没有任何的内容,提示"无项目".之前sa设置的都是空密码就没碰到这个现象,这次sa用户设置了密码就出现这个情况! 解决方法 打开企业管理器,如下图,在"SQL Server组"上右击,选"新建SQL Server注册",用向导选择一个服务器,一般都是本地,在上面默认的有,双击一下添加右边的框里就行了,选择验证方式,一般都是用电脑系统账号验证,因为站长是在本地使用的,完成注册,

SQL SERVER的优化建议与方法_MsSql

在实际的工作中,尤其是在生产环境里边,SQL语句的优化问题十分的重要,它对数据库的性能的提升也起着显著的作用.我们总是在抱怨机器的性能问题,总是在抱怨并发访问所带来的琐问题,但是如果我们对没一条SQL语句进行优化,尽管不能说可以解决全部问题,但是至少可以解决大部分问题. 1.Top排序问题. 我们经常要对表某个字段进行排序,然后取前N名.所以我们会写如下的SQL语句: select top 100 * from 表 order by Score desc 如果表非常大的话,那么这样的操作是非常消

sql server 获取系统时间的方法_MsSql

Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08 Select CONVERT(varchar(100), GETDATE(), 2): 08.05.16 Select CONV