Вот фрагменты кода для программного создания файлов .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
Если в вашей базе данных есть только одна ошибка в файле журнала, вы можете использовать эту
CREATE DATABASE db_name ON
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestDb.mdf')
FOR ATTACH
GO
Далее вы можете прочитать в КНИГАХ онлайн, чтобы получить больше информации.