德清网站建设中心,麒麟seo,wordpress中文杂志主题,做海报找素材网站前言
需求#xff1a;当主数据状态更新为无效时#xff0c;同时将关系表中的关联记录修改成无效状态。
为什么要From inserted去查询主键和状态#xff1f;
在 SQL Server 中#xff0c;触发器使用 inserted 和 deleted 临时表来引用发生 INSERT、UPDATE 或 DELETE 操作…前言
需求当主数据状态更新为无效时同时将关系表中的关联记录修改成无效状态。
为什么要From inserted去查询主键和状态
在 SQL Server 中触发器使用 inserted 和 deleted 临时表来引用发生 INSERT、UPDATE 或 DELETE 操作的行。这两个临时表提供了对受影响行的访问。在触发器中inserted 表包含了插入或更新后的新值而 deleted 表包含了更新或删除前的旧值。
对于触发器中的 INSERT 操作只有 inserted 表被填充。对于触发器中的 UPDATE 操作inserted 表包含新值而 deleted 表包含旧值。对于触发器中的 DELETE 操作只有 deleted 表被填充。
触发器编写
CREATE TRIGGER ORG_INACTIVE_TriggerON e_org_attributeAFTER UPDATEASBEGINSET NOCOUNT ON;IF UPDATE(party_status_cd)BEGINDECLARE NewPartyStatus NVARCHAR(255);DECLARE PrimaryKey INT; -- 假设主键的数据类型是 INT根据实际情况修改数据类型SELECT NewPartyStatus i.party_status_cd,PrimaryKey i.integration_id
FROM inserted i;IF NewPartyStatus INACTIVE
BEGIN
-- 失效站点数据
UPDATE central_site_pending
SET loaddt NULL,status 无效,end_time CAST ( GETDATE( ) AS DATE ),update_by ORGINACTIVE,update_time CONVERT ( VARCHAR, GETDATE( ), 120 )
WHERE(station_code PrimaryKey OR center_codePrimaryKey)AND status 有效;
ENDEND
END;