共计 1279 个字符,预计需要花费 4 分钟才能阅读完成。
本篇内容介绍了“怎么用 sql 语句实现分离和附加数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
对于用 Manage Studio 自己看着界面操作就可以应付了。
分离数据库:对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用 ALTER DATABASE 命令,并利用一个能够中断已存在链接的终止选项来把数据库设置为 SINGLE_USER 模式,设置为 SIGLE_USER 代码如下:ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE 下面是分离数据库的 CMD 命令 EXEC sp_detach_db DatabaseName 一旦一个数据库分离成功,从 SQL Server 角度来看和删除这个数据库没有什么区别。
附加数据库:对于附加数据库,可以使用 sp_attach_db 存储过程,或者使用带有 FOR ATTACH 选项的 CREATE DATABASE 命令,在 SQL Server2005 或更高的版本中推荐使用后者,前者是为了向前兼容,它正在逐渐淘汰,而后者更提供更多对文件的控制。CREATE DATABASE databasename ON (FILENAME = D:\Database\dbname.mdf) FOR ATTACH | FOR ATTACH_REBUILD_LOG 然而对于这样的附加,我们要注意几个地方。因为涉及到重建日志。1. 对于一个读 / 写数据库,如果含有一个可用的日志文件,无论使用 FOR ATTACH,还是使用 FOR ATTACH_REBULD_LOG,都是一样,都不会对此数据库重建日志文件。如果日志文件不可用或者物理上没有该日志文件,使用 FOR ATTACH 或 FOR ATTACH_REBULID_LOG 都会重建日志文件,所以如果我们复制一个带有大量日志文件的数据库到另一台服务器中,就可以只复制.mdf 文件,不用复制日志文件,然后使用 FOR ATTACH_REBULD_LOG 选项重建日志。条件是这台服务器将主要使用或只用改数据库的副本进行读操作。2. 对于一个只读数据库,就有点区别了,如果日志文件不可用,那么就不能更新主文件,所以也就不能重建日志,因此当我们附加一个只读数据库是,必须在 FOR ATTACH 从句中指定日志文件。如果使用附加数据库重建了日志文件。使用 FOR ATTACH_REBUILD_LOG 会中断日志备份链,进行这种操作之前最好做一次数据库完全备份。使用 sp_detach_db 存储过程一个好处就是可以保证一个数据库是被干净的关闭,那日志文件就不是附加数据库所必须的,我们可以使用 FOR ATTACH_REBUILD_LOG 命令重建日志,得到一个最小的日志文件。也算是一种快速收缩一个大日志文件的方法。
“怎么用 sql 语句实现分离和附加数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!