数据库分离与附加
SQL Server允许分离数据库的数据和事务日志文件,然后将其附加到另一台数据库服务器上。分离数据库将从SQL Server上删除数据库,但是保持组成该数据库的数据和事务日志文件完好无损。这些数据和事务日志可以用来将数据库附加到任何SQL Server实例上,并且保证数据库的状态与它分离之前的状态完全相同。
数据库的分离
分离数据库
在SQL Server运行时,在Windows中不能直接复制SQL Server数据库文件,如果想复制SQL Server数据库文件,就需要将数据库文件从SQL Server服务器中分离出去。在SQL Server 2008中,分离数据库有两种途径:一是利用SQL Server管理平台,二是通过执行DROP DATABASE命令。
(1)利用SQL Server管理平台分离数据库

(2)通过命令方式分离数据库
可以使用系统存储过程sp_detach_db来分离数据库,其完整语法形式如下:
sp_detach_db[@dbname= ] ‘dbname’
[, [@skipchecks= ] ‘skipchecks’]
[,[@keepFulltextIndexFile=] ‘keepFulltextIndexFile’ ]
参数说明如下:
[@dbname=]‘dbname’:要分离的数据库名称。
[@skipchecks=]‘skipchecks’:定义是否运行更新统计信息的操作。
[@keepFulltextIndexFile=]‘keepFulltextIndexFile’:与数据库有关的full-text文件是否要分离,默认值为true。
通过命令方式分离cjgl数据库。
sp_detach_db @dbname=‘cjgl’
数据库的附加
(1)利用SQL Server管理平台附加数据库

(2)通过命令方式附加数据库
在SQL Server 2008中,可以使用创建数据库命令来附加数据库,其完整语法形式如下:
[EXEC] sp_detach_db [ @dbname = ] 'dbname‘ [ , [ @skipchecks = ] 'skipchecks' ]
参数说明如下:
[@dbname =] ‘dbname’
要分离的数据库名称。dbname 的数据类型为 sysname,默认值为 NULL。
[@skipchecks =] ‘skipchecks’
skipchecks 的数据类型为 nvarchar(10),默认值为 NULL。如果为 true,则跳过 UPDATE STATISTICS。
如果为 false,则运行 UPDATE STATISTICS。对于要移动到只读媒体上的数据库,此选项很有用。
用命令附加cjgl数据库。
EXEC sp_attach_db @dbname=cjgl,@filename1='D:\Data\cjgl_data1.mdf'
说明:@dbname后面跟的是数据库的名称,@filename1后面跟的是该数据库中主数据文件的名称。




