我是触发器的新手,并且正在设置触发器以REQ_L
在插入满足特定参数的记录时更新表 ()。要更新的值REQ_L
是从具有匹配键的单独表中提取的。
create table REQ_L (item_number varchar(20),
commodity_code varchar(20),
vendor_id varchar(20),
item_source varchar(20));
create table XREF_C (item_number varchar(20),
commodity_code varchar(20),
xref_type varchar(20));
我希望在将记录插入时使用REQ_L
它,如果它符合触发器中的条件,它将使用in作为键更新COMMODITY_CODE
from 。REQ_L
COMMODITY_CODE
XREF_C
ITEM_NUMBER
不再锁定并切换到使用插入的表。好消息是不再出现死锁,坏消息是它仍然没有更新表。更新的 SQL 触发器尝试:
CREATE TRIGGER WBM
ON REQ_L
AFTER INSERT
AS
IF EXISTS (SELECT * FROM inserted WHERE VENDOR_ID = 'W7315'
AND ITEM_SOURCE = 'XML'
AND COMMODITY_CODE NOT LIKE '%-%')
BEGIN
UPDATE REQ_L
SET COMMODITY_CODE = (SELECT distinct CODE_2
FROM XREF_C xc, inserted i
WHERE i.ITEM_NUMBER = xc.CODE_1
AND xc.XREF_TYPE = 'WBM')
FROM XREF_C xc, inserted i
WHERE i.ITEM_NUMBER = xc.CODE_1
END
GO