我正在使用ODBC的SQLExecute()在MS SQL 2008上执行sql。我的代码调用存储过程成为死锁的受害者。服务器回滚并且过程终止,但SQLExecute()返回成功。
服务器跟踪日志清楚地显示死锁,但ODBC跟踪没有任何问题的迹象。由于存在大量的并发性,所以预计会出现死锁,但是我的应用程序无法恢复,除非它被告知存在问题。
ODBC驱动程序是否应该在此处返回错误?文档声明应该在死锁后设置@@ error,但ODBC是否有责任捕获该信息?
答案 0 :(得分:2)
Arrrg!在存储过程中缺少“set nocount on”。缓冲区中没有空间用于所有备份行更新计数的死锁错误。