我正在使用
sqlConnection.InfoMessage += new SqlInfoMessageEventHandler(sqlConnection_InfoMessage);
使用ExecuteNonQuery()
来执行存储过程。
我正在使用RAISERROR("Custom Message", 10 , 1) WITH NOWAIT
在存储过程中抛出消息。
我希望在处理时得到SQL服务器抛出的所有消息,而不是在查询执行结束时才收到。
通过设置sqlConnection.FireInfoMessageEventOnUserErrors = true;
可以实时获取所有消息,但这会导致严重程度大于10的错误也被SqlInfoMessageEventHandler
处理,我想将其作为异常抛出。
有没有办法在事件处理程序中实时获取我的自定义SQL信息消息(严重性为10),其他消息作为异常处理?
ExecuteScalar()
忽略第一个结果集之后的所有内容,包括任何进一步的消息。在这种情况下,我不得不回到使用带有FireInfoMessageEventOnUserErrors = true
的ExecuteNonQuery()
。 - Scott M