RE:No crece mi archivo de transacciones
lo reduje con el codigo q sigue......
SET NOCOUNT ON
DECLARE @NombreLogicoArchivo sysname,
@MaxMinutos INT,
@NuevoTamano INT
/* Indique aquí su configuración. */
-- Nombre de la base de datos para el que se va a truncar el registro
USE solarex
-- Use sp_helpfile para identificar el nombre de archivo lógico
-- que desea reducir.
set @NombreLogicoArchivo = 'MATRIZ_Log'
-- Límite de tiempo permitido para dar la vuelta al registro.
set @MaxMinutos = 10
set @NuevoTamano = 500 -- en MB
-- Configuración e inicio
DECLARE @TamanoOriginal int
SELECT @TamanoOriginal = size -- en páginas de 8 KB
FROM sysfiles
WHERE name = @NombreLogicoArchivo;
SELECT ' El tamaño original del registro de ' +
db_name() + ' es ' +
CONVERT(VARCHAR(30),@TamanoOriginal) +
' páginas de 8 KB ó ' +
CONVERT(VARCHAR(30),(@TamanoOriginal *8/1024)) + 'MB'
FROM sysfiles
WHERE name = @NombreLogicoArchivo;
--drop table dummytrans;
CREATE TABLE DummyTrans(DummyColumna char (8000) not null)
-- Dar la vuelta al registro y truncarlo.
DECLARE @Contador INT;
DECLARE @HoraInicio DATETIME;
DECLARE @TruncReg VARCHAR(255);
SET @HoraInicio = GETDATE();
SET @TruncReg = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
-- Intentar una reducción inicial.
DBCC SHRINKFILE (@NombreLogicoArchivo, @NuevoTamano)
EXEC (@TruncReg)
-- Dar la vuelta al registro, si es necesario.
-- no se ha excedido el máximo tiempo establecido
WHILE @MaxMinutos > DATEDIFF (mi, @HoraInicio, GETDATE())
-- no se ha reducido el registro
AND @TamanoOriginal = (SELECT size FROM sysfiles
WHERE name = @NombreLogicoArchivo)
-- El valor pasado para el tamaño nuevo es más pequeño que el tamaño actual.
AND (@TamanoOriginal * 8 /1024) > @NuevoTamano
BEGIN -- Bucle externo.
SELECT @Contador = 0 WHILE ((@Contador < @TamanoOriginal / 16) AND (@Contador < 50000))
BEGIN -- Actualización
-- Como es un campo de tipo char, inserta 8000 bytes.
INSERT DummyTrans VALUES ('Llenar registro')
DELETE DummyTrans
SELECT @Contador = @Contador + 1
END -- Actualización Probar si un truncamiento reduce de tamaño el registro.
EXEC (@TruncReg)
END -- Bucle externo
SELECT ' El tamaño final del registro de ' +
db_name() + ' es de ' + CONVERT(VARCHAR(30),size) +
' páginas de 8 KB ó ' + CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @NombreLogicoArchivo
DROP TABLE DummyTrans
PRINT '*** RECUERDE: DEBE REALIZAR UNA COPIA DE SEGURIDAD COMPLETA DE LA BASE DE DATOS***'
SET NOCOUNT OFF