1

有利的是,当我在哪个级别订阅事件(通过sp_CreateEvent)时,该事件会被创建吗?每个连接?每个客户?数据库范围?

该应用程序是我有一个长时间运行的应用程序,其中偶尔会由于错误而重置广告连接。创建新连接时sp_CreateEvent,除了重新订阅( )之外,我还需要重新创建( )吗?sp_WaitForEvent

另外,有没有办法检查我给定的连接/应用程序/任何级别的事件是否已经存在某个事件?

4

1 回答 1

2

事件是在每个数据库级别上创建的,但是任何希望等待事件的连接都必须使用sp_CreateEvent. 认为它更像是sp_CreateEvent 注册一个事件的连接,而不是创建它。

如果所有连接都希望等待该事件,则必须为该事件创建/注册,因此如果连接因错误而终止并重新创建,则必须再次调用sp_CreateEventand sp_WaitForEvent

没有办法简单地检查事件是否存在。可能最好的检查方法是调用sp_WaitForEvent并检查错误。如果您希望它立即返回,请将超时指定为 0。您也可以调用sp_CreateEventorsp_DropEvent并检查错误,但如果事件存在与否,您可能会产生意想不到的后果。

在我们的在线文档中阅读有关事件的更多信息。

于 2012-06-19T20:13:21.720 回答