在分离和附加数据库时可以使用sp_detach_db,sp_attach_db和sp_attach_single_file_db系统存储过程,这三个存储过程对于SQL Server数据库管理员执行以下的任务是非常方便的:
1.使用sp_detach_db将数据库从一个服务器分离;
2.使用sp_attach_db系统存储过程直接将.mdf和.ldf文件附加到数据库服务器;
3.使用sp_attach_single_file_db系统存储过程只附加.mdf文件;
尽管它们对于SQL Server数据库管理员是很有用的,但是在使用这两个存储过程时是有一些限制的,如:
1.不能附加多个日志文件;
2.不能附加16个以上的文件;
在SQL Server 2008中,微软宣布上面的系统存储过程将在未来的版本中被废弃.而在"CREATE DATABASE"SQL语句中添加了一个从句"FOR ATTACH".并建议应该使用"CREATE DATABASE database_name FOR ATTACH"语句
下面介绍使用"FOR ATTACH"语句的用法,以克服在使用sp_attach_db和sp_attach_single_file_db时要面临的限制.
1.创建实例数据库
2.使用sp_detach_db分离该数据库并使用sp_attach_db将它重新附加
3.使用"CREATE DATABASE database_name FOR ATTACH"语句附加数据库
4.分离数据库并删除日志(.ldf)文件
5.使用sp_attach_single_file_db附加.mdf文件
6.删除日志文件,使用"CREATE DATABASE database_name FOR ATTACH_REBUILD_LOG"附加数据库