Sql server SQL Server触发器是否可以使用多个进程并可能导致自身死锁?解决死锁问题

Sql server SQL Server触发器是否可以使用多个进程并可能导致自身死锁?解决死锁问题,sql-server,triggers,sql-server-2016,deadlock,Sql Server,Triggers,Sql Server 2016,Deadlock,我有一张桌子叫TableA,另一张桌子叫TableB。两者都有Customerid列 TableA有一个after触发器,其中包含以下内容(简化SQL): ViewX是一个从多个连接的表中读取数据的视图,其中一个是TableA 我有时会遇到死锁,当我分析sp_readerrorlog中的死锁信息时,我看到受害者进程有触发器的Delete语句,另一个进程有触发器的Insert语句。具有两个不同ID的两个进程(如下所示)。触发器的语句可以使用多个进程吗 当我查看如下所示的资源列表时,我不确定这是否意

我有一张桌子叫TableA,另一张桌子叫TableB。两者都有Customerid列

TableA有一个after触发器,其中包含以下内容(简化SQL):

ViewX是一个从多个连接的表中读取数据的视图,其中一个是TableA


我有时会遇到死锁,当我分析sp_readerrorlog中的死锁信息时,我看到受害者进程有触发器的Delete语句,另一个进程有触发器的Insert语句。具有两个不同ID的两个进程(如下所示)。触发器的语句可以使用多个进程吗

当我查看如下所示的资源列表时,我不确定这是否意味着它针对两个不同客户对TableA的两次更新是同时执行的,并且同一页面被锁定?或者触发器本身死锁。 对于带有参数的每个进程,我在inputbuf行的正下方看到了相同的SQL Update语句,但是没有显示参数的值,因此我无法确定是同一个Update语句还是两个不同的更新。我也在寻找一个更好的方法来做到这一点

process17428c6fc28是delete语句,process29bdcd8b468是insert语句

resource-list
   keylock hobtid=72057595429978112 dbid=8 objectname=TableB indexname=idx_someindex id=lock2c954a4d880 mode=X associatedObjectId=72057595429978112
    owner-list
     owner id=process29bdcd8b468 mode=X
    waiter-list
     waiter id=process17428c6fc28 mode=U requestType=wait
   pagelock fileid=1 pageid=23599080 dbid=8 subresource=FULL objectname=TableC  id=lock2cb3a1a3900 mode=IX associatedObjectId=72057595164557312
    owner-list
     owner id=process17428c6fc28 mode=IX
    waiter-list
     waiter id=process29bdcd8b468 mode=S requestType=convert

两个单独的连接以触发触发器的方式更新表可能会导致触发器自身死锁。从技术上讲,死锁位于触发器引用的表或索引上。触发器的语句可以使用多个进程吗?不,如果可能的话,这意味着delete(在insert之前)将与insert(在delete之后)并行执行:同一批中的两条语句并行执行。@richard crossley。我不明白你说的话。如果有两个连接,则有两个单独的进程。那么,如果有两个独立的连接,那么触发器将如何死锁自身呢?@Abdu一次调用触发器不会使自身死锁。由多个进程调用的触发器可能不可用。
resource-list
   keylock hobtid=72057595429978112 dbid=8 objectname=TableB indexname=idx_someindex id=lock2c954a4d880 mode=X associatedObjectId=72057595429978112
    owner-list
     owner id=process29bdcd8b468 mode=X
    waiter-list
     waiter id=process17428c6fc28 mode=U requestType=wait
   pagelock fileid=1 pageid=23599080 dbid=8 subresource=FULL objectname=TableC  id=lock2cb3a1a3900 mode=IX associatedObjectId=72057595164557312
    owner-list
     owner id=process17428c6fc28 mode=IX
    waiter-list
     waiter id=process29bdcd8b468 mode=S requestType=convert