在项目中遇到一个情况,系统标准功能是,当创建A表单据并保存时,会自动更新B表中的StockStatus值,但是这个值在A表上显示不出来,现在希望将B表中的StockStatus值实时显示在A表上,就在A表上加了一个字段pubuserdefnvc2,然后在B表上做了一个触发器,当B表StockStatus更新时,自动更新A表的pubuserdefnvc2。但是在单据保存的时候就报错了,提示如果 DML 语句包含不带 INTO 子句的 OUTPUT 子句,则该语句的目标表不能具有任何启用的触发器。
SQL SERVER触发器如下:
ALTER TRIGGER [dbo].[ST_SerialNumber_UPDATE] ON [dbo].[ST_SerialNumber]
FOR UPDATE,INSERT
AS
DECLARE @ID varchar(50)
DECLARE @ZT varchar(50)
SELECT @ID=a.id,
@ZT=c.Name
FROM INSERTED a
LEFT JOIN ST_RDRecord_b b on b.SerialNumbers=a.SNCode
LEFT JOIN eap_EnumItem c on c.code=cast(a.StockStatus as nvarchar(50))
Begin
Update ST_RDRecord_b Set pubuserdefnvc2=@ZT Where id=@ID
END
报错如下: