日期:2014-05-17  浏览次数:20721 次

sqlserver2008R2 添加数据 not allowed within multi-statement transaction
我向某表中添加一行数据,在修改数据界面直接添加 和用语句添加都会出这个错.
删除和修改该表中的数据都没有问题.
其他表没有出现这个问题.

No row was updated.
The data in row 9 was not committed.
Error Source :.Net SqlClient Data rovider.
Error message:Create Database statement not allowed within multi-statement transaction.
The Statement has been terminated.



请问 这是什么原因造成的?
需要怎么解决?
------最佳解决方案--------------------
引用:
看下此表上是否有触发器?

触发器问题.
多谢各位.
------其他解决方案--------------------
你的语句贴出来看看
------其他解决方案--------------------
是不是有数据重复? 你修改的刚好是重复行 
------其他解决方案--------------------
引用:
是不是有数据重复? 你修改的刚好是重复行


不是,是新的一行数据
------其他解决方案--------------------
http://blog.csdn.net/liumiaoyu920/article/details/6889604
------其他解决方案--------------------
引用:
http://blog.csdn.net/liumiaoyu920/article/details/6889604

这篇文章里有提到
  4. 无法新增数据库表
  com.sybase.jdbc2.jdbc.SybSQLException: The 'CREATE TABLE' command is not   allowed   within a multi-statement transaction in the 'database_name' database.

  sp_dboption database_name, 'ddl in tran', true
  sp_dboption database_name, 'allow nulls by default', true

需要重新启动服务

这个是sybase数据库吧, 那SQLServer如何修改呢?
------其他解决方案--------------------
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece76310508a24420597634b86914323c3933fcf331d5c007be3b924221204d3c3616404b21f5cebf06072300537b7ed9c8e1d8aac925e2988213e671cf01143d148b8cb30209574c751efaf1be7b9f36484aea589990b0dde16583ad6ffca195e03ca1ee76437f4d1ef5f642807ceec27658e59772d&p=8457d416d9c04be408e2977e0750802d&newp=8b2a964f9c951fee08e2977e074891305c5bc4387ebad6177b9ec516d2&user=baidu&fm=sc&query=sql+%B4%ED%CE%F3+226&qid=8443168a030949b0&p1=4
------其他解决方案--------------------
多语句??

你这个insert 只是一部分吧?你需要单独的运行create 语句
然后在执行insert

或者在语句之间加上go
------其他解决方案--------------------
看下此表上是否有触发器? 
------其他解决方案--------------------
null