我们可以很轻易地使用SQL Server来创建一个数据库,创建的数据库实例将存储在指定的默认位置(不一定是C盘,可以手动变更默认存储位置)。假设此时数据库实例创建在了C盘中的默认位置,亦即是与数据库安装位置保持一致性,对于64位的操作系统来说,存储在C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA中。由于各种原因,我们的代码持续性在写数据库,数据库中LDF文件变得越来越大,而C盘的空间越来越小,此时,我们首先想到的就是为数据库瘦身,瘦身很简单,右击数据库名称选择Tasks --> Shrink,如下图所示:

瘦身之后,我们会看到C盘空间的确有被释放一部分,至于释放的大小就要看情况了。有时候,我们也会考虑将数据库文件转移到其他盘来解决C盘空间问题,但是要怎么做呢?其实很简单!

现在假设,我们需要将数据库文件从C盘的数据库实例(pubs)默认路径转移到D盘指定文件夹loc1中, 第一步,打开SQL Server,创建一个新的query文件,输入以下代码:

USE MASTER;
GO
-- Take database in single user mode -- if you are facing errors
-- This may terminate your active transactions for database
ALTER DATABASE pubs
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
-- Detach DB
EXEC MASTER.dbo.sp_detach_db @dbname = N'pubs'
GO

执行以上代码,会看到如下提示信息:

此时会发现原有路径下的MDF 和 LDF文件前面多了一把小锁:

第二步,将数据库MDF和LDF两个文件复制到想转移的目标文件夹中,这里是D:\loc1:

第三步,回到SQL Server,输入以下代码:

CREATE DATABASE pubs ON
( FILENAME = N'D:\loc1\pubs.mdf' ),
( FILENAME = N'D:\loc1\pubs_log.ldf' )
FOR ATTACH
GO

执行代码,将看到提示信息:Command(s) completed successfully.

到这里,数据库转移就完成了,此时,可以放心删除C盘中相关的数据文件了。

这里还有一个小小的提醒:你可以使用ROLLBACK IMMEDIATE即时终止你的活动事务,但不要让它随机执行,除非你明确知道它们不再需要或者经过审查发现因任何原因出现数据库的连接我们无法手动终止,那就做吧~

如何转移数据库MDF和LDF文件的更多相关文章

  1. [SQLSERVER] 转移数据库MDF或LDF文件位置的方法,以及重新启动出现无权限的问题

    0. 查看数据库文件名和物理文件名 SELECT name, physical_name AS current_file_location FROM sys.master_files 1. 运行命令 ...

  2. sql server 2008怎样导入mdf,ldf文件,怎样解决导入mdf,ldf文件时出现附加数据库错误的问题

    废话不多说,直入主题吧. 1:打开sql server 2008,右键数据库-->附加 2:这时出现这个界面点击添加 3:打开数据库实例的安装目录,打开DATA文件夹;(如我的实例目录地址为:D ...

  3. sql server 2008如何导入mdf,ldf文件

    sql server 2008怎样导入mdf,ldf文件   网上找了非常多解决sql server导入其它电脑拷过来的mdf文件,多数是不全.遇到的解决方法不一样等问题,下边是找到的解决这个问题的最 ...

  4. 【SQLServer2008】之如何导入mdf,ldf文件、导入.mdf文件报错解决问题以及如何获得Authenticated Users 权限

    一.如何导入mdf,ldf文件: 链接:http://jingyan.baidu.com/article/09ea3ede21258cc0afde3943.html 二.导入.mdf文件报错解决问题 ...

  5. Sql Server 2005 mdf、ldf文件无法复制问题

    [问题原因]Sql Server服务只要启动就一直占用,故无法进行编辑操作. [解决办法 - 1]: 1)在开始-运行对话框中输入"services.msc”,显示如下界面: 2)关闭如上选 ...

  6. mdf与ldf文件如何还原到SQLserver数据库

    现在又如下两个文件 需要用这两个文件还原数据库 那么该怎么去还原呢? 首先在D盘目录下建立一个文件夹test,然后将上图中的文件粘贴到该文件夹中. 接着在数据库中执行如下代码: EXEC sp_att ...

  7. mdf与ldf文件如何还原到SQL Server数据库

    1,首先新建两个数据库(Db1,Db2) 在Db1数据库中添加一个表: 然后点击数据库右键-属性-文件-找到文件路径 然后复制这个路径中的Db1的数据,把这两个文件放到其他文件之下 复制之前需要关闭S ...

  8. Navicat Premium如何打开SQL文件.MDF和.LDF文件

    相信大家再装SQL Server时都会遇到一件很头疼的事情--装完SQL server之后发现没有启动程序.没有经验的会以为SQL SERVER安装失败了于是选择重装.可是呵呵,重装了4,5次还是一样 ...

  9. SQL Server中如何用mdf,ldf文件还原数据库

    不论是手动还原还是写个脚本还原,首先都要修改文件的属性为可读写,另外这个用户能够修改 1.手动Attach 2.写个脚本还原 我个人比较喜欢写个脚本去还原 Exec sp_attach_db @dbn ...

随机推荐

  1. YChaos生成混沌图像

    YChaos是一款通过数学公式生成混沌图像的软件,展示混沌之美,数学之美.软件中定义一套简易的脚本语言,用于描述数学表达式.使用时需要先要将数学表达式写成该脚本的形式,解析脚本代码以生成相应的图形与图 ...

  2. 浏览器 CSS Hack 收集

    所谓的Hack就是只有特定浏览器才能识别这段hack代码.Hack 不是什么好东西,除非没有办法,我们尽量还是不要用着玩意. 下面是各个浏览器的CSS Hack 列表. Firefox 浏览器 @-m ...

  3. XML 文档和数据

    .NET Framework 4.5 其他版本 .NET Framework 提供了一组全面而集成的类,可用来方便地生成可以识别 XML 的应用程序. 通过以下命名空间中的类,可以分析和编写 XML, ...

  4. ecshop 加广告出现广告位的宽度值必须在1到1024之间

    打开 admin/ad_position.php这个文件,搜索1024,这里你会搜到两个地方 在236行左右 if ($ad_width > 1024 || $ad_width < 1) ...

  5. python-推荐

    users={"Angelica": {"Blues Traveler": 3.5, "Broken Bells": 2.0, " ...

  6. 简化 Hadoop 2.4.1 Eclpse 插件编译【原创】

    昨天折腾hadoop2X的eclipse插件,从https://github.com/winghc/hadoop2x-eclipse-plugin把源码搞下来后,很快搞定出来一个,但是...New H ...

  7. C primer plus 练习题 第六章

    16. #include <stdio.h> int main() { double remain = 100.0; ; ) { remain = remain * 0.08 + rema ...

  8. UNIX环境高级编程笔记之标准I/O库

    一.总结 文件I/O一章讲了不带缓冲的I/O,本章讲的是带缓冲的I/O.不带缓冲针对的是内核的系统调用,而带缓冲针对的是用户空间的标准库函数,是基于带缓冲的I/O实现的.不带缓冲的I/O通过文件描述符 ...

  9. PHP/MYSQL UTF8 中文排序

    1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. f ...

  10. QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)

    最近这阵子,接了个私活,封装一个开发包俗称的SDK给客户调用,查阅了很多人家的SDK,绝大部分用VC编写,而且VC6.0居多,估计也是为了兼容大量的XP用户及IE浏览器,XP自带了VC6.0运行库,所 ...