我有以下更新触发器(下面的代码)这是有效的,但不是我的预期。 当我在Valve表中添加值VCODE即V或AV的信息时,我得到以下错误(如下图所示)我知道如果我右键单击并执行SQL,则会填充值,但是我不想这样做。 我已经做了一些挖掘,我认为它与pkID有关,但我不确定我需要用代码来解决这个问题。有人请告诉我应该如何重写下面的脚本以避免这个错误。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[trValve] ON [dbo].[Valve]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE Valve
SET VSYS = 'VLV',
SITE_CODE = '00123',
VAREA = 'INL'
FROM Valve t
INNER JOIN inserted i ON t.pkID = i.pkID
WHERE i.VCODE = 'V'
OR i.VCODE = 'AV'
BEGIN
SET NOCOUNT ON;
UPDATE VALVE
SET ASSET_TAG = CONCAT (
Valve.SITE_CODE,'-',Valve.VAREA,'-',valve.VSYS,'-',Cast(pkID AS VARCHAR(50))
);
END
END