有利的是,当我在哪个级别订阅事件(通过sp_CreateEvent
)时,该事件会被创建吗?每个连接?每个客户?数据库范围?
该应用程序是我有一个长时间运行的应用程序,其中偶尔会由于错误而重置广告连接。创建新连接时sp_CreateEvent
,除了重新订阅( )之外,我还需要重新创建( )吗?sp_WaitForEvent
另外,有没有办法检查我给定的连接/应用程序/任何级别的事件是否已经存在某个事件?
有利的是,当我在哪个级别订阅事件(通过sp_CreateEvent
)时,该事件会被创建吗?每个连接?每个客户?数据库范围?
该应用程序是我有一个长时间运行的应用程序,其中偶尔会由于错误而重置广告连接。创建新连接时sp_CreateEvent
,除了重新订阅( )之外,我还需要重新创建( )吗?sp_WaitForEvent
另外,有没有办法检查我给定的连接/应用程序/任何级别的事件是否已经存在某个事件?
事件是在每个数据库级别上创建的,但是任何希望等待事件的连接都必须使用sp_CreateEvent
. 认为它更像是sp_CreateEvent
注册一个事件的连接,而不是创建它。
如果所有连接都希望等待该事件,则必须为该事件创建/注册,因此如果连接因错误而终止并重新创建,则必须再次调用sp_CreateEvent
and sp_WaitForEvent
。
没有办法简单地检查事件是否存在。可能最好的检查方法是调用sp_WaitForEvent
并检查错误。如果您希望它立即返回,请将超时指定为 0。您也可以调用sp_CreateEvent
orsp_DropEvent
并检查错误,但如果事件存在与否,您可能会产生意想不到的后果。
在我们的在线文档中阅读有关事件的更多信息。