> 数据库 > SQL Server 2008 >

sql server 2008分离与附加数据库的例子

sql server 2008分离与附加数据库的例子,供大家学习参考。

分离数据库使用SQLSERVER的系统存储过程sp_detach_db。
语法:
sp_detach_db[@dbname=]'database_name'[,[@skipchecks=]'skipchecks']
参数说明:
@dbname:数据库名称
@skipchecks:选择在分离前对所有表运行UPDATESTATISTICS。如果要跳过UPDATESTATISTICS,请指定true。若要显式运行UPDATESTATISTICS,请指定false。

示例:
Execsp_detach_dbN'SampleData',false

附加数据库
1、使用sp_attach_db附加数据库
语法:
sp_attach_db[@dbname=]'dbname',[@filename1=]'filename_n'[,...16]

参数:
@dbname:数据库名称
@filename:数据库文件操作系统名称(含路径)

注:最多可以为数据库指定16个文件名

示例:
 

复制代码代码如下:
execsp_attach_db
@dbname='SampleData',
@filename1=N'C:\Sample\SampleData.mdf',
@filename2=N'C:\Sample\SampleData_01.ndf',
@filename3=N'C:\Sample\SampleData_02.ndf',
@filename4=N'C:\Sample\SampleData_03.ndf',
@filename5=N'C:\Sample\SampleData_04.ndf',
@filename6=N'C:\Sample\SampleData_Log.ldf',
@filename7=N'C:\Sample\Document'

2、使用CREATE DATABASE @dbname FOR ATTACH附加数据库
 

复制代码代码如下:
CREATE DATABASE SampleData ON
(FILENAME=N'C:\Sample\SampleData.mdf'),
(FILENAME=N'C:\Sample\SampleData_01.ndf'),
(FILENAME=N'C:\Sample\SampleData_02.ndf'),
(FILENAME=N'C:\Sample\SampleData_03.ndf'),
(FILENAME=N'C:\Sample\SampleData_04.ndf'),
(FILENAME=N'C:\Sample\SampleData_Log.ldf'),
(FILENAME=N'C:\Sample\Document')
FOR ATTACH
 

或者
 

复制代码代码如下:
CREATE DATABASE SampleData ON
(FILENAME=N'C:\Sample\SampleData.mdf'),
(FILENAME=N'C:\Sample\SampleData_01.ndf'),
(FILENAME=N'C:\Sample\SampleData_02.ndf'),
(FILENAME=N'C:\Sample\SampleData_03.ndf'),
(FILENAME=N'C:\Sample\SampleData_04.ndf'),
(FILENAME=N'C:\Sample\Document')
FOR ATTACH_REBUILD_LOG

两者区别在于FORATTACH必须有可用的数据文件与日志文件,FORATTACH_REBUILD_LOG可不没有日志文件,在附加数据库的时候自动创建。

注意:不能分离与附加数据库快照。

(责任编辑:IT)