代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
>
数据库
>
MsSql
>
用sql语句实现分离和附加数据库的方法
时间:2021-10-06 09:08:25 | 栏目:
MsSql
| 点击:次
对于用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命令重建日志,得到一个最小的日志文件。也算是一种快速收缩一个大日志文件的方法。
Author:兴百放
Web:Http://xbf321.cnblogs.com
您可能感兴趣的文章:
mssql关于一个表格结构的另外一种显示(表达意思不变)
SQL进行排序、分组、统计的10个新技巧分享
Sql学习第三天――SQL 关于with ties介绍
Microsoft SQL Server 2012 数据库安装图解教程
SQL Server 2008 R2登录失败的解决方法
相关文章
01-12
SQLserver中cube:多维数据集实例详解
11-05
sqlserver常用命令行操作(启动、停止、暂停)
10-05
SqlServer Mysql数据库修改自增列的值及相应问题的解决方案
12-03
T-SQL 查询语句的执行顺序解析
10-03
SQL数据库存储过程示例解析
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长