我有一个运行模拟SQL 2005数据库的SQL 2008的Web服务器,并且我有一个本地SQL 2005数据库用于测试环境。SQL日志和活动事务
这使我使用脚本备份/恢复数据进行测试,因为2008服务器备份不会还原到2005服务器。
当我运行该SQL查询,以减少我的生产Web SQL Server上的表的大小(2008)
DELETE FROM TickersDay
WHERE (DATEDIFF(day, TickersDay.[date], GETDATE()) >= 8)
GO
我得到这个消息:
Msg 9002, Level 17, State 4, Line 3
The transaction log for database 'VTNET' is full. To find out why space in the log
cannot be reused, see the log_reuse_wait_desc column in sys.databases
它出现时我有时也会发布脚本。
当我运行SQL命令我得到以下结果:
SELECT [name], recovery_model_desc, log_reuse_wait_desc
FROM sys.databases
结果:
[name] recovery_model_desc log_reuse_wait_desc
VTNET SIMPLE ACTIVE_TRANSACTION
这里是我的问题和事项:
- 我明白了..我有一个需要回滚命令的交易声明
<如果@@ TRANCOUNT> 0还原> ..但我有100个存储过程,所以我才这样做....
与此同时...我怎样才能根除这一问题?我已经尝试收缩,我已经尝试备份Db ...
正如你所看到的,它是在SIMPLE模式下...我不知道如何备份一个仅记录文件......(还没有找到如何做到这一点)......
感谢您的详细解释和答案(多个)...不知道哪些工作,但我增加了大小(和使用不受限制),并使用您的查询,它的工程很棒!足够的未提交的交易bs ...我以后会担心的.. – CraigJSte 2011-01-12 22:52:21