0
我之前没有使用过触发器,所以这是一个'工作'第一次刺我需要实现的东西。 一旦我在VCODE字段中输入值'V'或'AV',触发器会填充VSYS,SITE_CODE,VAREA &所需的值,然后将这些值连接到ASSET_TAG字段。更新触发器和连接之后
我不认为这是执行此操作的最有效方式,那么有人可能会在SQL域中看到我的混乱脚本,并建议最有效的方法来实现相同的结果。
感谢
Trigger [dbo].[trValve]
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'
from Valve t
inner join inserted i on t.pkID = i.pkID
and i.VCODE='V' or
i.VCODE = 'AV'
Begin
set nocount on;
update Valve
Set SITE_CODE = '00123'
from Valve t
inner join inserted i on t.pkID = i.pkID
and i.VCODE='V' or
i.VCODE = 'AV'
Begin
set nocount on;
update Valve
Set VAREA = 'INL'
from Valve t
inner join inserted i on t.pkID = i.pkID
and 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
End
End
End
也是我应包括在原岗位一两件事,我有现有的记载,被添加到项目的另一个版本的Valve表中,因此VCODE字段在创建此触发器之前已填充,是否有一种方法可以让我更新此触发器以便在我的其他项目阀表上回顾填充记录集? –