我建索引的时候,遇到这个错误 提供两种办法:
“NewsTable”表
- 无法创建索引“PK_NewsTable”。
数据库 ’cnahdata’ 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
无法创建约束。请参阅前面的错误消息。
语句已终止。
”
但是我用网上的方法,把日志文件压缩到1M后,再进行该操作,还是不行。
试了很多方法,都不行。
目前我的cnahdata.mdf是1.6G
日志cnahdata_log.ldf是1M
网站运行都很正常,但就是我建索引的时候遇到这种情况!
表NewsTable里有25W左右的数据!
一种方法:清空日志。
1.打开查询分析器,输入命令
SQL code
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.打开企业管理器,在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。(也可以直接在查询分析器里执行:
SQL code
alter database 数据库名 set recovery simple
3.右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1: 删除LOG
分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。如果以后,不想要它变大。