gpt4 book ai didi

sql-server - COMMIT TRANSACTION请求没有对应的BEGIN TRANSACTION

转载 作者:行者123 更新时间:2023-12-02 21:59:07 50 4
gpt4 key购买 nike

这是我在生产服务器上遇到的一个奇怪的问题。过去两周内发生了两次这种情况,并且这是一个流量很大的服务器。

我们在 Web 服务中有一些代码执行 BEGIN TRAN,然后运行一些 SQL 查询(两次插入,然后更新)。然后最后执行COMMIT。现在我们已经两次在日志中收到该消息:

The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.

在前两次插入和更新之间,我们调用另一个 Web 服务,因此在调用 COMMIT 之前,前两次插入和最后一次更新之间可能会有轻微的延迟。这会导致我们的问题吗?我们在 IIS 7 和 Server 2008 R2 上运行此程序(已应用所有更新)。

最初我们认为这可能是应用程序池被回收,但更改为在半夜回收。现在我不确定什么会导致 SQL Server 忘记对 BEGIN TRAN 的调用。

此 Web 服务确实被多次调用。有人见过这样的事情吗?我现在完全不知所措......

非常感谢任何帮助或建议!

最佳答案

您的事务似乎失败了,已回滚,并且没有任何可提交的内容

这样的例子

CREATE TABLE BlaTest(id INT PRIMARY KEY NOT NULL)
GO

现在运行这个

BEGIN TRAN

INSERT BlaTest VALUES('a')
GO

COMMIT TRAN

这是错误

Msg 245, Level 16, State 1, Line 3
Conversion failed when converting the varchar value 'a' to data type int.
Msg 3902, Level 16, State 1, Line 2
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.

这将毫无问题地运行

BEGIN TRAN

INSERT BlaTest VALUES(5)
GO

COMMIT TRAN

一篇关于交易的好文章是 Error Handling in SQL 2005 and Later作者:厄兰·索马斯科格

关于sql-server - COMMIT TRANSACTION请求没有对应的BEGIN TRANSACTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5623840/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com