当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库技术(36)

MSSQL
SQL Server教程:备份和恢复措施
合理建立索引-提高SQL Server的性能之法
SQL Server查询过程中 实际消耗了多大内存?
教程:SQL Server 2008 数据挖掘的概念
在SQL Server中生成脚本的方法
如何提高SQL Server复制的向后兼容性
为SQL Server 2008添加报表服务的虚拟目录
在SQL Server中创建全局临时表
SQL Server触发器的使用方法
如何通过调整Windows参数提高数据库服务器性能
详解SQL Server 2005 FOR XML嵌套查询的使用
初识Sybase数据库
浅谈SQL Server Compact的DLL文件
丢失的数据忘记备份怎么办?
SQLServer数据库中如何保持数据一致性
教你解决SQLServer与服务器连接时出错
SQLServer中游标是如何处理数据的?
SQL Sever性能怎样全方位诊断?
SQL Server教程:详细学习游标
详解SQLServer 存储过程

MSSQL 中的 SQL Server数据库技术(36)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 159 ::
收藏到网摘: n/a

   在SQL Server 中可以使用拆分(Detach)和附加(Attach)的方法来移动数据库。拆分数据库是从服务器中移去逻辑数据库,但不会将操作系统中的数据库文件删除。附加数据库将会创建一个新的数据库,并复制存储在已有的数据库文件和事务日志文件中的数据。使用系统存储过程Sp_detach_db 来拆分数据库,用系统存储过程Sp_attach_db 来附加数据库。

Sp_detach_db 系统存储过程的语法如下:
sp_detach_db [@dbname =] 'database_name'
[, [@skipchecks =] 'skipchecks']
其中[@skipchecks =] 'skipchecks'子句中Skipchecks 的值为True 或False。 当Skipchecks的值为True 时,指定在执行此过程之前不需要对数据库中的所有表执行UPDATE STATISTICS命令;为False 时,则需要执行UPDATE STATISTICS 命令。

Sp_attach_db 系统存储过程的语法如下:
sp_attach_db [@dbname =] 'dbname',
[@filename1 =] 'filename_n' [,...16]
其中“filename_n”包括文件的路径和物理名称。最多可指定16 个文件。文件中必须包含主数据库文件。如果需要附加的文件超过了16 个,就必须使用带FOR ATTACH 子句的CREATE DATABASE 命令来代替。
注意:Sp_attach_db系统存储过程中只能作用于那些已经用Sp_detach_db系统存储过程从服务器中拆分出来的数据库。

例6-16:移动数据库mytest 到E:\SQL Data 目录下。
(1) 在SQL Server Query Analyzer 中运行系统存储过程Sp_helpdb, 得到mytest数据库所包含的文件名称、数量、类型、存放位置等信息。命令语句如下:
exec sp_helpdb mytest



(2) 在SQL Server Query Analyzer 中运行Sp_detach_db 系统存储过程,拆分mytest数据库。命令语句如下:
exec sp_detach_db mytest, true

运行结果如下:
Successfully detached database 'mytest1'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

(3) 在操作系统的文件夹窗口中用剪切或粘贴的方式直接将与数据库相关的操作系统文件移动到E:\ SQL Data 2000 Server 目录下。即将D:\SQL Data\mytest_Data.MDF 文件和D:\SQLData\mytest_Log.LDF 文件移到E:\ SQL Data 2000

(4) 在SQL Server Query Analyzer 中运行Sp_attach_db 系统存储过程,附加文件到mytest 数据库。命令语句如下:
exec sp_attach_db @dbname = 'mytest',
@filename1 = 'e:\sql data\mytest_data.mdf',
@filename2 = 'e:\sql data\mytest_log.ldf'

运行结果如下:
Successfully attached database 'mytest'.
至此已完成了数据库的移动工作,可在Enterprise Manager 中查看mytest 数据库的信息,也可以在SQL Server Query Analyzer 中运行系统存储过程Sp_helpdb 来查看移动是否成功。