执行insert时出现错误3039 sqlserver2008 无论往哪个表里insert都是一样提示错误3039当前事务无法提交,而且无法支持写入日志文件的操作。请回滚该事务。是不是日志文件已经满了呀,请问怎么设置呀谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dbcc sqlperf(logspace)贴结果出来,只贴你那个库就可以了 master 1.242188 39.62264 0tempdb 0.7421875 63.68421 0model 0.7421875 56.84211 0msdb 2.742188 22.36467 0DAC 5.554688 17.17651 0谢谢了 邹老大有类似的文章http://blog.csdn.net/zjcxc/article/details/3625655 LZ是不是用了try..catch..?检查一下,在catch..里应有rollback tran语句. 不是执行某个存储过程出现的错误,现在是整个库里面所有的表,不能insert,也不能修改都提示同样的错误 是普通的insert 语句,还是在存储过程中的insert语句呢?如果是存储过程中的语句,可能是因为:sqlserver存储过程报错:当前事务无法提交,而且无法支持写入日志文件的操作。请回滚该事务。出现这个错误 代表是存储过程(或者调用的子存储过程)中含有try catch语句,并且将设置了SET XACT_ABORT ON;SET XACT_ABORT ON代表的意思是 程序如果遇到错误就回滚。如果在程序中没有try catch的情况下 就直接回滚了。但是如果有try catch的话,在try块中出现了错误,被catch捕获以后。Xact_state()就会变成-1 (Xact_state()是一个系统函数 0表示没有活动事务,1表示有活动事务并且可以提交,-1表示有活动事务,但是无法提交换句话说就是只能rollback)所以在你提交的时候就会报错“当前事务无法提交,而且无法支持写入日志文件的操作。请回滚该事务。”解决:1 在catch中对Xact_state()的值进行判断如果为-1的话 直接rollback 2 如果在子存储过程中存在try catch的话 最好去掉 让错误往上一级抛出,由上一级做处理 有没有办法让两个查询数量的SQL语句放到一个SQL里 SQL语句? 疑难语句。谁来帮帮忙 怎样通过sql语句来查询某个用户的权限 SQL2005 NOT IN问题 用VBA发邮件遇到离职同事的邮箱地址如何解决 SQL高手请进!!!!非常感谢~~~~~ 远程访问!!!! MSSQL7在WIN2000下安装的问题!(急急急!!!) SQL Server 2000与Oracle的比较,你有何高见? sql server 2008 变量可以分割吗? 查询出的数据显示问号
tempdb 0.7421875 63.68421 0
model 0.7421875 56.84211 0
msdb 2.742188 22.36467 0
DAC 5.554688 17.17651 0谢谢了
检查一下,在catch..里应有rollback tran语句.
都提示同样的错误
出现这个错误
代表是存储过程(或者调用的子存储过程)中含有try catch语句,并且将设置了SET XACT_ABORT ON;
SET XACT_ABORT ON代表的意思是 程序如果遇到错误就回滚。如果在程序中没有try catch的情况下 就直接回滚了。但是如果有try catch的话,在try块中出现了错误,被catch捕获以后。Xact_state()就会变成-1 (Xact_state()是一个系统函数 0表示没有活动事务,1表示有活动事务并且可以提交,-1表示有活动事务,但是无法提交换句话说就是只能rollback)
所以在你提交的时候就会报错“当前事务无法提交,而且无法支持写入日志文件的操作。请回滚该事务。”解决:1 在catch中对Xact_state()的值进行判断如果为-1的话 直接rollback
2 如果在子存储过程中存在try catch的话 最好去掉 让错误往上一级抛出,由上一级做处理