我正在使用CONTEXT_INFO将用户名传递给删除触发器,以便记录到审计/历史表中。我试图了解CONTEXT_INFO的范围,以及是否会创建潜在的竞态条件。
我的每个数据库表都有一个存储过程来处理删除。删除存储过程将userId作为参数,并将CONTEXT_INFO设置为userId。然后,我的删除触发器获取CONTEXT_INFO并使用它来更新指示谁删除了行的审计表。
问题是,如果两个不同用户的删除存储过程同时执行,其中一个存储过程中设置的CONTEXT_INFO是否会被另一个存储过程触发的触发器消耗?
我看过这篇文章http://msdn.microsoft.com/en-us/library/ms189252.aspx,但我不清楚SQL Server中会话和批处理的范围,这对于这篇文章的帮助至关重要!
我想发布代码,但目前时间紧迫。如果这不够清晰,我稍后会进行编辑。
非常感谢您的帮助。
我的每个数据库表都有一个存储过程来处理删除。删除存储过程将userId作为参数,并将CONTEXT_INFO设置为userId。然后,我的删除触发器获取CONTEXT_INFO并使用它来更新指示谁删除了行的审计表。
问题是,如果两个不同用户的删除存储过程同时执行,其中一个存储过程中设置的CONTEXT_INFO是否会被另一个存储过程触发的触发器消耗?
我看过这篇文章http://msdn.microsoft.com/en-us/library/ms189252.aspx,但我不清楚SQL Server中会话和批处理的范围,这对于这篇文章的帮助至关重要!
我想发布代码,但目前时间紧迫。如果这不够清晰,我稍后会进行编辑。
非常感谢您的帮助。