数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQL Server导出导入数据方法


发布日期:2023年01月19日
 
SQL Server导出导入数据方法

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

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

备份 选数据库完全

目的 备份到 按添加按钮

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

重写 选重写现有媒体

最后按确定按钮

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

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

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

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

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

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

还原备份集>数据库完全

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

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

可以去看 >管理>当前活动>锁/对象>找到数据库下锁的进程号>到查询分析器里用kill 进程号杀掉这些锁

然后再做还原)

注意如果在原有的目的SQL Server数据库上从备份文件(*bak)还原数据库

会把已经存在的表存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容

如果一定要还原备份文件(*bak)里部分数据需要另外建一个新数据库

其逻辑名称和数量同备份文件(*bak)里数据库的逻辑名称和数量一致

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

导出导入SQL Server里某个表

没有防火墙同一个局域网里或不在同一个局域网里但通过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的包名及详细描述)>下一步> ]>完成

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

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

导出表里的数据到文本文件

在SQL Server企业管理器里选中目的数据库按鼠标右键选所有任务>

导入数据>弹出数据转换服务导入/导出向导窗口>下一步>

选数据源> 数据源(用于SQL Server的Microfost OLE DB提供程序)>

服务器(可选择局域网内能访问到的所有SQL Server服务器)>

选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)>

数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)>下一步>

选择目的>目的(文本文件)> 文件名(在自己的电脑硬盘中生成一个自定义的文本文件) >下一步>

制定表复制或查询>选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)>下一步>

选择目的文件格式>源(选择要导出的表)>用默认的带分隔符>选第一行包含有列名称选项>下一步>

保存调度和复制包>时间>立即运行(如果要实现隔一段时间自动导出到文本文件选调度DTS包以便以后执行)>

保存(可以不选)> [保存DTS包(保存的时候要输入DTS的包名及详细描述)>下一步>]>完成

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

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

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

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

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

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

所以我们要这样做

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

在SQL Server查询分析器里>选中源数据库里表名>按右键>在新窗口中编写对象脚本>创建>

复制下新窗口内创建表名的sql语句

到目标SQL Server数据库上查询分析器里执行创建表名的sql语句生成空表结构

(如果已经存在这样的表名修改建表的sql语句在表名后面加上导入时间的年月信息例如table_)

调用导入/导出工具>弹出数据转换服务导入/导出向导窗口>下一步>

选数据源> 数据源(文本文件)>

文件名(已传到目的SQL Server数据库下要导入的文本文件后缀可以不是*txt

但是常规文本编辑器能打开的文件文件类型选全部)>下一步>

选择文件格式>用默认的带分隔符>选第一行包含有列名称选项>下一步>

制定列分割符>逗号>下一步>

选择目的>目的(用于SQL Server的Microfost OLE DB提供程序)>

服务器(可选择目标局域网内能访问到的所有SQL Server服务器)>

选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)>

数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)>下一步>

选择源表和视图>修改目的表名为刚才创建的表名>转换(在目的表中追加行) >下一步>

保存调度和复制包>

时间>立即运行(如果要实现隔一段时间自动把文本文件导入选调度DTS包以便以后执行)>

保存(可以不选)> [保存DTS包(保存的时候要输入DTS的包名及详细描述)>下一步>]>完成

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

如果要更改导入时间的年月信息的表名例如table_到原来的表名

在企业管理器里把原来的表名改成table_old_table_改名成table

这会对应用程序里频繁访问的表照成一定的中断

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

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

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

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

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

在SQL Server企业管理器里选中源数据库

存储过程>单选或者多选中要转移的存储过程>

用户定义的函数>单选或者多选中要转移的函数>

按鼠标右键选所有任务>生成SQL脚本>确定>在自己的电脑硬盘中生成一个自定义的*sql文件>

保存>正在生成SQL脚本>成功

如果目的数据库经过防火墙不在同一个局域网里

要通过FTP或者remote desktop或者pcanywhere等方法把第步生成的*sql文件传到目的SQL Server数据库服务器上

用查询分析器进入SQL Server目的数据库

从菜单里选文件>打开>打开查询文件>选中第步生成的*sql文件>点执行查询的绿色倒三角型快捷键>

查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系会报一些错

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

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

在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver

在$ORACLE_HOME\network\admin\tnsnamesora里配置ORACLE数据库的别名(service name)

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

在WIN或者win服务器>管理工具>数据源(ODBC)>

系统DSN(本机器上NT域用户都可以用)>添加>ORACLE OD               

上一篇:查询sqlserver所有表并改变其架构

下一篇:SQL注入步骤和常用函数以及中文处理方法