Pruebalo en alguna maquina de prueba, antes para el serivicio de sql y copia en mdf por si acaso.
Creamos una base de datos nueva.
CREATE DATABASE [Test]
ON PRIMARY ( NAME = 'Test_Data', FILENAME = 'C:\Test_Data.MDF')
LOG ON (NAME = N'Test_Log', FILENAME = 'C:\Test_Log.LDF')
Paramos el servicio de SQL Server.
Para ello desde linea de comando ejecutamos:
net stop mssqlserver
Modificamos el fichero de datos de la base de datos creada.
Borramos el fichero C:\Test_Data.MDF, y renombramos nuestro fichero de datos original C:\Northwind2.mdf a C:\Test_Data.MDF.
Iniciamos el servicio de SQL Server.
Para ello desde linea de comando ejecutamos:
net start mssqlserver
Nuestra base de datos Test entrará en modo suspect.
Cambiamos la base de datos Test de modo sospechoso a modo de emergencia.
Desde el analizador de consultas ejecutamos lo siguiente:
USE master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
update sysdatabases set
status=-32768 where dbid=DB_ID('Test')
go
sp_configure 'allow updates',0
go
reconfigure with override
go
Paramos el servicio de SQL Server.
Para ello desde linea de comando ejecutamos:
net stop mssqlserver
Borramos el fichero de registro de transacciones de la base Test.
Nuestro fichero que tenemos que borrar es C:\Test_log.ldf
Iniciamos el servicio de SQL Server.
Para ello desde linea de comando ejecutamos:
net start mssqlserver
Reconstruimos el fichero de registro de transacciones de la base Test.
Desde el analizador de consultas ejecutamos lo siguiente:
USE master
go
dbcc rebuild_log('Test','c:\Test_log.ldf')
go
dbcc checkdb('Test')
Quitamos la configuración de acceso restringido de la base Test..
Desde el analizador de consultas ejecutamos lo siguiente:
alter database Test
set multi_user
con esto tiene que recostruir el log.