分离数据库使用的SQL SERVER的系统存储过程sp_detach_db,
语法:
sp_detach_db [ @dbname= ] 'database_name' [ , [ @skipchecks= ] 'skipchecks' ]
参数说明:
@dbname:数据库名称
@skipchecks:选择在分离前对所有表运行 UPDATE STATISTICS。如果要跳过 UPDATE STATISTICS,请指定 true。若要显式运行 UPDATE STATISTICS,请指定 false。
示例:
- Exec sp_detach_db N'SampleData',false
附加数据库
1、使用sp_attach_db附加数据库
语法:
sp_attach_db [ @dbname= ] 'dbname' , [ @filename1= ] 'filename_n' [ ,...16 ]
参数:
@dbname:数据库名称
@filename:数据库文件操作系统名称(含路径)
注:最多可以为数据库指定16个文件名
示例:
- exec sp_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
两者区别在于FOR ATTACH必须有可用的数据文件与日志文件,FOR ATTACH_REBUILD_LOG可不没有日志文件,在附加数据库的时候自动创建。
注意:不能分离与附加数据库快照。