无ldf日志文件附加数据库

--方法一:直接附加,产生新的日志文件
USE [master]
GO
CREATE DATABASE [AdventureWorks2014]
ON 
(FILENAME = N'D:\database\2014\AdventureWorks2014_Data.mdf')
FOR ATTACH_REBUILD_LOG
GO
/*
文件激活失败。物理文件名称'D:\database\2014\AdventureWorks2014_Log.ldf'可能不正确。
新的日志文件 'D:\database\2014\AdventureWorks2014_log.ldf' 已创建。
*/

--方法二:创建同名新库,停服务后用原mdf覆盖,再开启服务后用 DBCC 修复
--2.1
--注:这个语句是原库上右键生成的
CREATE DATABASE [AdventureWorks2014]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'AdventureWorks2014_Data', FILENAME = N'D:\database\2014\AdventureWorks2014_Data.mdf' , SIZE = 996608KB , MAXSIZE = UNLIMITED, FILEGROWTH = 16384KB )
 LOG ON 
( NAME = N'AdventureWorks2014_Log', FILENAME = N'D:\database\2014\AdventureWorks2014_Log.ldf' , SIZE = 504KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
GO
--2.2 停服务,覆盖mdf文件,开启服务
--图形界面显示:AdventureWorks2014(恢复挂起)
USE [master]
GO
alter database [AdventureWorks2014] set EMERGENCY
alter database [AdventureWorks2014] set single_user

DBCC CHECKDB(AdventureWorks2014,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(AdventureWorks2014,REPAIR_REBUILD)

alter database [AdventureWorks2014] set multi_user
GO
/*
注:必须先 set EMERGENCY, 否则单用户设置不了, 会提示错误:
消息 5173,级别 16,状态 1,第 27 行
一个或多个文件与数据库的主文件不匹配。如果是尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。
*/


两种方法都亲测可行。

方法二做法源自舒老师博客:点击打开链接


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值