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
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: