sqlserver把生产库的数据导出到测试库

注意:本文基于sqlserver2008 R2

一、sqlserver数据库整体导出

1、第一种方式,利用备份还原功能(如果生产库和测试库版本不一致,请选择第二种方式):

右击需要导出的数据库,然后选择“任务”—>“备份”,

点击“确定”,完成备份数据库文件。然后把生产环境备份好的数据库文件拷贝到测试环境,在还原数据库的时候,需要将原数据库删除,然后单击“数据库”--->“还原数据库”,“目标数据库”中输入数据库名称,“还原的源”选择“源设备”,然后添加数据库备份文件,点击“确定”,即可完成还原操作。

2、第二种方式,利用分离附加功能(注意:此方法会导致生产库暂时不可用,谨慎操作):

右击需要导出的数据库,然后选择“任务”—>“分离”,

点击“确认”后,数据库就分离好了。然后去数据库安装目录下的DATA文件夹下复制分离好的数据库文件

把生产环境分离好的数据库文件拷贝到测试环境。在测试环境附加数据库的时候,首先也需要将测试环境的数据库分离,然后在sqlserver管理界面,右击“数据库”—>“附加”,选择从生产拷贝过来的文件,

点击“确定”,数据库即完成附件操作。(完成后记得把生产库分离的数据库文件附加回生产环境

二、sqlserver部分表数据导出(此方法如果是默认选择整个数据库的对象,那么可以直接生成所有的脚本和数据文件)

首先,数据从生产库导出,右击需要导出的数据库,然后选择“任务”—>“生产脚本”功能,然后“选择特定数据库对象”,勾选需要导出的表

然后继续下一步,点击“高级”按钮,下拉框下拉,找到“要编写脚本的数据类型”,选择“仅限数据”,则只导出表的数据脚本,而不会导出建表语句(如果需要建表语句,可以选择“架构和数据”)

确定后,一直点击下一步直到完成,则数据sql文件成功的生成到指定目录。然后把sql文件导入到测试库。首先拷贝生成的sql文件到测试库,如果文件较小,可以直接在sqlserver studio界面中打开,点击执行就可以了。如果点击执行后,提示“没有足够的内存继续执行程序 。(mscorlib)”,则需要再dos界面中执行脚本。打开dos界面,执行下面命令:sqlcmd    -S  localhost -U sa -P 1  -d "databasename" -i "c:\xxx\MySql.sql"   (参数命名:-S 服务器地址 -U 用户名 -P 密码 -d 数据库 -i 脚本文件路径)

三、sqlserver某张表的部分数据导出

有的表数据量特别大,导致生成的数据脚本文件很大,不太方便文件的拷贝和传输。如果我们只需要其中的一小部分数据,那么可以只导出需要表的部分数据。

1、第一种方式,通过sql语句查询保存到文件

通过sql语句,查询出来这部分数据,然后右击查询的结果,“将结果另存为”,输入文件名,保存类型选择“文本”。

保存完成后,把生成的sql文件拷贝到测试环境。然后右击需要导入的数据库,然后选择“任务”—>“导入数据”,下一步,然后到“选择数据源”界面,“数据源”选择“平面文件源”,“文件名”选择从生产环境拷贝过来的sql文件,

其他选项都按照默认,然后点击“下一步”,

继续“下一步”,选择目标

服务器名称和数据库已默认选好,不需要修改,继续“下一步”,

因为我的sql文件名和要导入的数据库表名一样,所以自动就对应起来了,

这一步也不需要修改,继续“下一步”,到“数据类型映射”界面,发现“原列”和“目标列”已经对应起来,核对了一下,没有任何问题,但是每一行都会有感叹号,所以需要“出错时(全局)”和“截断时(全局)”这两个选项选择“忽略”(请注意,如果不选择忽略有可能导入会报错,导入不进去)。

继续“下一步”,“下一步”,然后点“完成”,数据就可以导入进来了。

2、第二种方式,把需要用到的数据保存到新表

把需要导出的这部分数据保存到一张新表里,

然后把这张表的数据按照本文上面的内容“二、sqlserver部分表数据导出”,通过“生成脚本”的方法生成sql文件

“高级脚本编写”选项中选择“仅限数据”

然后把生成的文件拷贝到测试环境,用文本编辑器打开文件,把表名全部替换成要导入的表的表名

最后执行文件中的sql语句,即可完成表中部分数据从生产环境导测试环境的过程。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值