如何在SQL Server中附加没有LDF文件的数据库?
答案 0 :(得分:8)
您可以使用sp_attach_single_file_db附加缺少日志文件的数据库。
答案 1 :(得分:3)
您可以尝试MohammedU发布的here内容。基本上,他使用DBCC REBUILD_LOG命令。它将根据您的服务器版本而有效。
以下是步骤(没有详细信息):
答案 2 :(得分:3)
在SQL Server Management Studio中尝试此步骤
答案 3 :(得分:3)
尝试通过将MDF文件添加到“附加数据库”对话框来附加它。您会注意到该对话框将报告缺少的LDF文件。按照图片所示的步骤进行操作:
答案 4 :(得分:3)
以下是programaticaly创建.ldf文件的代码片段
以下是3种方法。
方法-1
在我的情况下,我的数据库在DATA文件夹中。
您可以通过右键单击然后转到属性来获取数据库的完整路径 然后你可以复制数据库的完整路径
在我的情况下,路径如下。
C:\ Program Files \ Microsoft SQL Server \ MSSQL11.DRIBBLEE \ MSSQL \ DATA
现在这里是使用存储过程(sp_attach_single_file_db)并传递参数(数据库名称和物理路径)的第一个方法
USE [master]
GO
EXECUTE sp_attach_single_file_db
@dbname='AdventureWorksDW_2012',
@physname=N'C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.DRIBBLEE\MSSQL\DATA\AdventureWorksDW2012_Data.mdf'
GO
执行代码后执行代码转到它所在的数据库文件夹,你会看到那里创建的.ldf文件。
但是,您将在
中收到以下消息The physical file name "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW2012_log.ldf" may be incorrect.
New log file 'C:\Program Files\Microsoft SQL Server\MSSQL11.DRIBBLEE\MSSQL\DATA\AdventureWorksDW_2012_log.ldf' was created.
现在,您可以附加数据库,在“附加数据库”中右键单击对象资源管理器中的服务器名称并刷新。
方式-2 强>
如果您的数据库缺少一个或多个日志文件,则可以使用以下
CREATE DATABASE db_namehere ON
(
FILENAME=N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\db_namehere.mdf')
FOR ATTACH_REBUILD_LOG
GO
方式-3 强>
如果您的数据库只有一个日志文件missig,您可以使用此
CREATE DATABASE db_name ON
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestDb.mdf')
FOR ATTACH
GO
此外,您可以阅读在线书籍以获取更多信息。
答案 5 :(得分:1)
你可以“只是这样做”它会发出一个警告,它无法找到.ldf,但它仍会附加数据库。
答案 6 :(得分:1)
如果遇到问题,请验证mdf文件不是只读的。
答案 7 :(得分:1)
EXEC sp_attach_single_file_db @dbname = 'DBNAME',@physname = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\DBNAME_Data.mdf';
我试过并且有效......希望这有帮助。