在批处理结束时检测到不可提交的事务。该事务被回滚

时间:2009-05-05 19:00:52

标签: sql sql-server

我们遇到服务器迁移问题。我们有一个应用程序 这么多的事务它在一个数据库服务器上运行良好。但是当将相同的数据库传输到另一台服我们正面临以下错误。

  

Server: Msg 3998, Level 16, State 1, Line 1
  Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.

使用所有数据将同一数据库复制到另一台服务器。如果我们将连接字符串更改为旧服务器,那么它工作正常。

有人可以就此提出建议吗?

2 个答案:

答案 0 :(得分:1)

此消息表示交易中的其他参与者之一投票回滚。之后,交易必须失败。

所以这个消息是结果,而不是原因。您是否收到任何早期/其他错误消息?

从Management Studio运行查询时会发生什么?

答案 1 :(得分:0)

您似乎遇到的问题是,某个数据库中的记录是可接受的而不是其他数据库。建议你看看两个数据库结构之间的差异(是的,我知道它们应该是相同的,但显然它们不是)。怀疑您要么找到校对差异,数据类型不同,要么两者之间的数据长度不同。你可能还有一个表缺少身份定义的表,因此它不能插入,因为它是一个必填字段,并且缺少值。像SQl Compare这样的工具很容易找到差异。