暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL Server 分离与附加数据库

原创 熊发涯 2020-04-06
1729

数据库分离与附加

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管理平台分离数据库

image.png

(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管理平台附加数据库

image.png

(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后面跟的是该数据库中主数据文件的名称。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论