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:SampleSampleData.mdf',
@filename2=N'C:SampleSampleData_01.ndf',
@filename3=N'C:SampleSampleData_02.ndf',
@filename4=N'C:SampleSampleData_03.ndf',
@filename5=N'C:SampleSampleData_04.ndf',
@filename6=N'C:SampleSampleData_Log.ldf',
@filename7=N'C:SampleDocument'
2、使用CREATE DATABASE @dbname FOR ATTACH附加数据库
复制代码 代码如下:
CREATE DATABASE SampleData ON
(FILENAME=N'C:SampleSampleData.mdf'),
(FILENAME=N'C:SampleSampleData_01.ndf'),
(FILENAME=N'C:SampleSampleData_02.ndf'),
(FILENAME=N'C:SampleSampleData_03.ndf'),
(FILENAME=N'C:SampleSampleData_04.ndf'),
(FILENAME=N'C:SampleSampleData_Log.ldf'),
(FILENAME=N'C:SampleDocument')
FOR ATTACH
或者
复制代码 代码如下:
CREATE DATABASE SampleData ON
(FILENAME=N'C:SampleSampleData.mdf'),
(FILENAME=N'C:SampleSampleData_01.ndf'),
(FILENAME=N'C:SampleSampleData_02.ndf'),
(FILENAME=N'C:SampleSampleData_03.ndf'),
(FILENAME=N'C:SampleSampleData_04.ndf'),
(FILENAME=N'C:SampleDocument')
FOR ATTACH_REBUILD_LOG
两者区别在于FORATTACH必须有可用的数据文件与日志文件,FORATTACH_REBUILD_LOG可不没有日志文件,在附加数据库的时候自动创建。
注意:不能分离与附加数据库快照。