SQL Server的六种数据移动方法
通过工具DTS的设计器进行导入或导出
DTS的设计器功能强大 支持多任务 也是可视化界面 容易操作 但知道的人一般不多 如果只是进行SQL Server数据库中部分表的移动 用这种方法最好 当然 也可以进行全部表的移动 在SQL Server Enterprise Manager中 展开服务器左边的+ 选择数据库 右击 选择All tasks/Import Data (或All tasks/Export Data ) 进入向导模式 按提示一步一步走就行了 里面分得很细 可以灵活的在不同数据源之间复制数据 很方便的 而且可以另存成DTS包 如果以后还有相同的复制任务 直接运行DTS包就行 省时省力
也可以直接打开DTS设计器 方法是展开服务器名称下面的Data Transformation Services 选Local Packages 在右边的窗口中右击 选New Package 就打开了DTS设计器 值得注意的是:如果源数据库要拷贝的表有外键 注意移动的顺序 有时要分批移动 否则外键主键 索引可能丢失 移动的时候选项旁边的提示说的很明白 或者一次性的复制到目标数据库中 再重新建立外键 主键 索引
其实建立数据库时 建立外键 主键 索引的文件应该和建表文件分开 而且用的数据文件也分开 并分别放在不同的驱动器上 有利于数据库的优化
利用Bcp工具
这种工具虽然在SQL Server 的版本中不推荐使用 但许多数据库管理员仍很喜欢用它 尤其是用过SQL Server早期版本的人 Bcp有局限性 首先它的界面不是图形化的 其次它只是在SQL Server的表(视图)与文本文件之间进行复制 但它的优点是性能好 开销小 占用内存少 速度快 有兴趣的朋友可以查参考手册
利用备份和恢复
先对源数据库进行完全备份 备份到一个设备(device)上 然后把备份文件复制到目的服务器上(恢复的速度快) 进行数据库的恢复操作 在恢复的数据库名中填上源数据库的名字(名字必须相同) 选择强制型恢复(可以覆盖以前数据库的选项) 在选择从设备中进行恢复 浏览时选中备份的文件就行了 这种方法可以完全恢复数据库 包括外键 主键 索引
直接拷贝数据文件
把数据库的数据文件(* mdf)和日志文件(* ldf)都拷贝到目的服务器 在SQL Server Query Analyzer中用语句进行恢复:
EXEC sp_attach_db @dbname = ’test’
@filename = ’d:mssql data est_data mdf’
@filename = ’d:mssql data est_log ldf’
这样就把test数据库附加到SQL Server中 可以照常使用 如果不想用原来的日志文件 可以用如下的命令:
EXEC sp_detach_db @dbname = ’test’
EXEC sp_attach_single_file_db @dbname = ’test’
@physname = ’d:mssql data est_data mdf’
这个语句的作用是仅仅加载数据文件 日志文件可以由SQL Server数据库自动添加 但是原来的日志文件中记录的数据就丢失了
在应用程序中定制
可以在应用程序(PB VB)中执行自己编写的程序 也可以在Query Analyzer中执行 这种方法比较灵活 其实是利用一个平台连接到数据库 在平台中用的主要时SQL语句 这种方法对数据库的影响小 但是如果用到远程链接服务器 要求网络之间的传输性能好 一般有两种语句:
>select into new_tablename where
>insert (into) old_tablename select from
where
区别是前者把数据插入一个新表(先建立表 再插入数据) 后者是把数据插入已经存在的一个表中 我个人喜欢后者 因为在编程的结构上 应用的范围上 第二条语句强于前者
SQL Server的复制功能
SQL Server提供了强大的数据复制功能 也是最不易掌握的 具体应用请参考相关资料 值得注意的是要想成功进行数据的复制工作 有些条件是必不可少的:
>SQL Server Agent必须启动 MSDTC必须启动
>所有要复制的表必须有主键
>如果表中有text或image数据类型 必须使用with log选项 不能使用with no_log选项
另外max text repl size选项控制可以复制的文本和图像数据的最大规模 超过这个限制的操作将失败
>在要进行复制的计算机上 应该至少是隐含共享 即共享名是C$或D$…
>为SQL Server代理使用的Windows NT帐号不能是一个本地的系统帐号 因为本地的系统帐号不允许网络存取
lishixinzhi/Article/program/SQLServer/201311/22358
标柔洛索: SQL六种数据移动方法 1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行...
景泰县17227306271: 如何把一个数据库中的几个表移动到另一个数据库中 - ?
标柔洛索: 1、目标数据库中相关表不存在:SELECT * INTO 目标数据库名..表名 FROM 源数据库名..表名 2、目标数据库中相关表存在:INSERT INTO 目标数据库名..表名 (字段列表) (SELECT (字段列表) FROM 源数据库名..表名)
景泰县17227306271: sql server 2008 数据库的迁移有哪些方法 - ?
标柔洛索: 1. 通过工具"DTS"的设计器进行导入或者导出2. 利用"Bcp"工具3. 直接利用备份和恢复4. 直接拷贝数据文件5. 在应用程序中定制6. SQL Server的复制功能
景泰县17227306271: 多个sql数据库复制(同步)一个数据库可以吗? - ?
标柔洛索: SQL 自带的镜像或者订阅分发功能,只能是一对一或者一对多的.即将一个数据库复制到多个数据库中,或者一个数据库复制到另外一个数据库中.如果需要实现将多个数据库同步到另外的同一个数据库中(也就是多对一,或者多对多).目前我知道的只有第三方的 SyncNavigator 数据库同步软件可以实现.可以应用于多个连锁店之间的数据共享,或者将多个连锁店的数据上传到总部.
景泰县17227306271: sql 2000怎样物理移动数据库?
标柔洛索: 两种方式:1.将数据库于Sql Server 服务管理器进行分离后(若不分离将无法移动数据库文件),可以将.mdf 和.ldf文件通过移动存储设备附加的目标主机上.2.将数据库设置为脱机状态,再将.mdf 和.ldf文件通过移动存储设备附加的目标主机上. 两中方式的区别:其实两中方式一样,唯一有点不同的是通过“分离”数据库,如果再对源服务器的数据库进行操作是,需要再进行次附加;而“脱机状态”再通过“联机”就可以继续使用
景泰县17227306271: sql server中有行迁移现象吗 - ?
标柔洛索: 有的,和oracle一样,SQL中也有行迁移 行迁移记包含forwarding_stub 和forwarded 两种类型.这两类记录是因为数据页不能容纳更新后的记录而产生的,不是因为记录长度超过8060B引起的,所以这两类记录依然是行内记录,与行溢出记录是...
景泰县17227306271: 网店管家服务器数据库要怎么转移 - ?
标柔洛索: 网店管家使用的数据库是sqlserver在按照《企业版安装》进行完sqlserver数据库服务期端的安装之后,就可以在sqlserver数据库之间进行sqlserver数据之间的转移了.实现数据转移的方法很多,在这里,简要列举以下几种,以供大家参考:...
景泰县17227306271: 如何把sqlserver数据迁移到mysql数据库及需要注意事项 - ?
标柔洛索: 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据迁移到MySQL.下面是小编日常整理的一种sqlserver数据库迁移的方法.一、SQL Server中常用数据类型与...
景泰县17227306271: sql2005 如何将数据表从一个数据库移动到另外一个数据库中 - ?
标柔洛索: 可以导出你如果是先导出数据的话好说就直接到处但是表的主键会丢失 如果是导表结构的话那样也可以