"NHibernate.StaleStateException: Unexpected row count: -1" 在任何 update\insert 进入 SQL 服务器
"NHibernate.StaleStateException: Unexpected row count: -1" on any update\insert into SQL Server
我的应用程序(ASP.NET 网站)运行良好。突然 - 没有任何应用程序 update\change - 客户端开始报告执行 INSERTs\UPDATEs 操作的错误(请参阅标题中的异常消息)。
经过简短的调查后,很明显 任何 UPDATE\INSERT 查询都失败了,并显示了类似的消息。
客户的 IT 部门表示在 SQL 服务器或 IIS 服务器上均未发生 update\environment 更改。
知道发生了什么吗?
注:
可能看起来像重复的问题,但事实并非如此。这里的大多数类似问题(异常消息)都带有“expected: 0”
在花了一些时间研究这个之后,这里有一个答案...
好像"expected"中的0+通常表示"Row count returned from DML query was returned by SQL Server but was different from expected"。另一方面,-1 表示类似 "SQL Server not returned row count at all"
我知道您可以在活动连接上使用 SET NOCOUNT ON
来使 SQL 服务器停止返回受影响的行数,但我不确定是否会使用它,如果不更改应用程序,其他人将无法使用可以为我的连接激活此选项,对吗?
错了! 实际上 SQL 服务器上有一个叫做 "default user options" 的东西,你可以看到 here。可以在 SQL 服务器 MS 中或通过 sql 脚本使用 sp_configure
进行更改。只有管理员可以更改它,它会影响所有用户连接到单个服务器实例上的所有数据库。就我而言,一些管理员将默认选项更改为 NOCOUNT ON
。将设置恢复为默认值后,应用程序再次开始运行...
HTH 某人...
我的应用程序(ASP.NET 网站)运行良好。突然 - 没有任何应用程序 update\change - 客户端开始报告执行 INSERTs\UPDATEs 操作的错误(请参阅标题中的异常消息)。 经过简短的调查后,很明显 任何 UPDATE\INSERT 查询都失败了,并显示了类似的消息。
客户的 IT 部门表示在 SQL 服务器或 IIS 服务器上均未发生 update\environment 更改。
知道发生了什么吗?
注: 可能看起来像重复的问题,但事实并非如此。这里的大多数类似问题(异常消息)都带有“expected: 0”
在花了一些时间研究这个之后,这里有一个答案...
好像"expected"中的0+通常表示"Row count returned from DML query was returned by SQL Server but was different from expected"。另一方面,-1 表示类似 "SQL Server not returned row count at all"
我知道您可以在活动连接上使用 SET NOCOUNT ON
来使 SQL 服务器停止返回受影响的行数,但我不确定是否会使用它,如果不更改应用程序,其他人将无法使用可以为我的连接激活此选项,对吗?
错了! 实际上 SQL 服务器上有一个叫做 "default user options" 的东西,你可以看到 here。可以在 SQL 服务器 MS 中或通过 sql 脚本使用 sp_configure
进行更改。只有管理员可以更改它,它会影响所有用户连接到单个服务器实例上的所有数据库。就我而言,一些管理员将默认选项更改为 NOCOUNT ON
。将设置恢复为默认值后,应用程序再次开始运行...
HTH 某人...