miércoles, 10 de abril de 2019

MS Access - Run-time error 3000 - Reserved error (-7711) - SQL Server

Recientemente me he encontrado con este error es MS Access:

MS Access - Run-time error '3000' - Reserved error (-7171), there is no message for this error



Una posible causa a este problema puede ser el espacio de la base de datos. En mi caso, había llegado a la restricción de SQL Server Express. El detalle del error podía verse en el visor de sucesos de Windows:

CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 10240 MB per database.

Algunas opciones para hacer espacio:

Log de transacciones

USE mibase
GO
ALTER DATABASE mibase
SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE ( mibase  _log, 1);
GO
ALTER DATABASE mibase
SET RECOVERY FULL;

Revisar espacio en MSDB

sp_helpdb msdb 



La siguiente consulta nos puede ayudar con el tamaño de las tablas.

select
    object_name(i.object_id) as ObjectName,
    i.[name] as IndexName,
    sum(a.total_pages) as TotalPages,
    sum(a.used_pages) as UsedPages,
    sum(a.data_pages) as DataPages,
    (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB,
    (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8) / 1024 as DataSpaceMB
from
    sys.indexes i
    inner join sys.partitions p 
        on i.object_id = p.object_id and i.index_id = p.index_id
    inner join sys.allocation_units a
        on p.partition_id = a.container_id
group by
    i.object_id, 
    i.index_id, 
    i.[name]
order by
    sum(a.total_pages) desc, 
    object_name(i.object_id)
go



Si el problema es de DataBase Mail, se pueden usar estos procedimientos (no usar truncate):

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = 'October 9, 2005' ; GO 

EXECUTE msdb.dbo.sysmail_delete_log_sp  @logged_before = 'October 9, 2005' ;  
GO 

Usar con cuidado si tenemos muchos elementos para eliminar. Jugar con los rangos de fechas.
Es posible que se requiera posteriormente hacer un Shrink:



No hay comentarios:

Publicar un comentario