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

MSSQL
SQL SERVER乐观锁定和悲观锁定使用实例
SQL Server 对文件内容进行全文检索的查询
MSSQL 2005的新功能创建数据库快照
给SQL Server Model数据库增加一些变化
拷贝的SQLServer7数据库的恢复方法
如何紧急恢复SQL Server主数据库
SQL Server 2000在win2003上安装不上的解决办法
MySQL 5.0新特性教程 存储过程:第一讲
Web环境下MSSQL Server中数据的磁带备份与恢复
用SQL 2005的ROW_NUMBER() 实现分页功能
SQL Server 2005的100范例程序及数据库下载
sql server2000导入mdf文件
简单SQL语句小结
了解SQL Server 2005五个有用的动态管理对象
使SQL Server数据支持 XML
Sql Server 2000数据库日志日益庞大的解决方法
怎么导出SQL所有用户表的字段信息
保护 SQLServer 2005 Express Edition Server
如何修改SQLServer 2000身份验证模式和系统管理员
简单介绍:MS-SQL数据库开发常用汇总

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 183 ::
收藏到网摘: 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 来查看移动是否成功。