【发布时间】:2021-10-26 11:42:20
【问题描述】:
我有一个更新表的存储过程。当存储过程同时从不同的 PC 执行时,我会收到此错误。
System.Exception: System.Data.SqlClient.SqlException (0x80131904): La transaction d'isolement d'instantané a étébandnée en raison d'un conflit de mise à jour。 Vous ne pouvez pas utiliser l'isolement d'instantané pour accéder à la table 'dbo.Journee' directement 或indirectement dans la base de données 'PlanningGestion' afin de mettre à jour, de supprimer ou d'insérer la ligne modifiée ou supprimée par une autre 交易。 Réexécutez la transaction ou changez le niveau d'isolement pour l'instruction de mise à jour/suppression
是否可以指定系统需要等到第一个存储过程执行结束后再启动新的?作为先进先出。
或者我必须使用其他方式来做到这一点?
PS:我的存储过程从子查询更新
update Journee
set UVGlobalJournee = (select
case
when max(E.UVGlobale) is null
then 0
else max(E.UVGlobale)
end
from
Examen E
inner join
IT_Journee_Examen IT on E.IdExamen = IT.IDEXAMEN
where
Journee.IdJournee = IT.IDJOURNEE)
where Test = '1'
and Journee.IdJournee = @IdJournee
【问题讨论】:
-
Are error messages required to be posted in English? 请正确格式化问题并解释错误消息的内容
-
您的方法是发送code smell。虽然我们可以帮助您解决这个确切的问题,但我认为重新设计您的方法会收获更多。
标签: sql-server stored-procedures