每当我更新SQL Server中的表行时,更新都会成功运行,我也会确认并显示行已更新。但是,第二天,当我检查时,我发现我所做的更新已经回滚。我还检查了是否有任何交易已开启但没有交易。我没有在事务中运行我的更新语句,因此我不必在之后提交任何事务。 这已经发生了一段时间,这真的很烦人。
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
您正在使用的服务器或数据访问机制(即ADO.NET)可能未配置为自动提交事务。 This MSDN site个州;
自动提交模式是SQL的默认事务管理模式 服务器数据库引擎每个Transact-SQL语句都已提交或 完成后回滚。如果语句成功完成, 它承诺;如果它遇到任何错误,它将被回滚。一个 与数据库引擎实例的连接在 每当此默认模式未被覆盖时自动提交模式 显式或隐式交易。自动提交模式也是 ADO,OLE DB,ODBC和DB-Library的默认模式。
尝试将UPDATE明确地放入事务并提交以查看是否保存。还要求您的DBA查看SQL Server上是否有任何设置更改了默认事务管理模式以将autocommit设置为false。