数据库“名称”的事务日志已满。要查找无法重用日志中的空间的原因,请参阅sys.databases中的log_reuse_wait_desc列。

时间:2014-03-10 10:13:54

标签: sql-server sql-server-2008 tsql sql-server-2008-r2

当我尝试在单个插入查询中插入8355447条记录时出现以下错误。我使用sql-server-2008-r2。

INSERT INTO表

从[DbName] .table

中选择*

请帮我解决....谢谢

3 个答案:

答案 0 :(得分:1)

检查SQL Server上的磁盘空间,因为当事务日志由于缺少可用磁盘空间而无法扩展时,通常会发生这种情况。

如果您正在努力争取磁盘空间,可以缩小应用程序数据库的事务日志,也不要忘记收缩TEMPDB数据库的事务日志。

答案 1 :(得分:0)

好吧,清理事务日志。如果有人愿意阅读,那么错误是非常清楚的。

答案 2 :(得分:0)

注意: - 将此作为单独的评论发布,因为我是Stackoverflow的新手并且没有足够的积分来添加评论。

可能有多个选项

  1. 是否有必要将此插件作为单个插件运行 交易。如果这不是强制性的,您可以插入说'n'否。的 行作为单个事务,然后是'n',依此类推。
  2. 如果您可以在另一个驱动器上留出一些空间,则创建一个额外的日志 该驱动器上的文件。
  3. 检查是否可以通过移动清除所考虑的驱动器上的空间 一些其他文件到其他地方。
  4. 如果以前的选项均未打开,请缩小SQL事务日志文件 使用TRUNCATE_ONLY选项(释放日志文件末尾的可用空间到OS) dbcc sqlperf('logspace')可用于查找其中包含更多可用空间的日志文件。

    使用'那些数据库并应用缩小文件,命令是: -  dbcc shrinkfile(,TRUNCATEONLY)

    此处提供了DBCC收缩文件详细信息DBCC Shrinkfile

  5. 如果您在此之后仍未获得空间,则可能必须通过在数据库中重新分配页面(通过指定目标大小)来进行严格的缩减,详细信息可以从提供的链接中获取。