Блокировка происходит, когда я выполняю хранимую процедуру внутри триггера
У меня есть триггер для выполнения двух процедур.
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
Блокировка не происходит. Что я должен написать в триггере, чтобы избежать блокировки таблицы.
Благодарю.
1 ответ
Попробуйте, вызвав вторую процедуру внутри (конец) первой процедуры, так как я вижу, что параметры не заданы.
Эта таблица [VTBO_INTERFACE].[dbo].[T_TRIGGER_TABLE_FOR_SYNCH]
используется в любой из процедур?
Вы должны попытаться change the design/data flow to mimic this procedure call
,