我有一个执行两个程序的触发器。
ALTER TRIGGER [dbo].[TRG_SP_SYNCH_CAB]
ON [VTBO_INTERFACE].[dbo].[T_TRIGGER_TABLE_FOR_SYNCH]
INSTEAD OF INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
INSERT INTO T_TRIGGER_TABLE_FOR_SYNCH (DT)
VALUES (GETDATE());
exec PUMPOMAT_HO.DBO.SP_CM_TransferCAB
exec PUMPOMAT_HO.DBO.SP_CM_UpdateCAB
END
两个程序的执行时间为 5 分钟。当我尝试向 T_TRIGGER_TABLE_FOR_SYNCH 表插入一个值时,我在存储过程中使用的其他表被锁定了 5 分钟。但是当我尝试直接执行两个程序时
exec SP_CM_TransferCAB
exec SP_CM_UpdateCAB
没有锁发生。我应该在触发器中写什么以避免表锁。
谢谢。