SQLServer創建觸發器,更新表
在SQLServer中,觸發器,插入,更新,刪除狀態:創建觸發器t_inms_alarms
在[小霛通]上。【dbo】。[警報電流]
對於插入,刪除
如同
聲明@rows int
SELECT @rows = @@rowcount
如果@rows = 0
返廻
-如果插入了表,則同步更新AlarmsMiddleTbl。
如果存在(從插入中選擇1)和不存在(從刪除中選擇1)
開始
插入[PHS]。【dbo】。[AlarmsMiddleTbl]
選擇i.[Id],i.[SequenceId],i.[code],i.[alarmdefineid],
CONVERT(varchar,i.[occurTime],120),i.[confirmation],i.[ConfirmationTime),
I .[維護名稱],I .[維護程序],
i.[ClearTime],i.[screen],CONVERT(varchar,getdate(),120)
從插入的I
結束
-如果表正在更新字段,則同步更新AlarmsMiddleTbl。
如果不存在(從插入中選擇1)和存在(從刪除中選擇1)竝且
更新(確認時間)
開始
插入[PHS]。【dbo】。[AlarmsMiddleTbl]
選擇d.[Id],d.[SequenceId],d.[code],d.[alarmdefineid],
CONVERT(varchar,d.[occurTime],120),d.[confirmation],d.[ConfirmationTime),
d.[維護名稱],d .[維護程序],
CONVERT(varchar,getdate(),120),d.[screen],CONVERT(varchar,getdate(),120)
從刪除的d
結束
-如果表被刪除,同步更新AlarmsMiddleTbl。
如果不存在(從插入中選擇1)和存在(從刪除中選擇1)
開始
插入[PHS]。【dbo】。[AlarmsMiddleTbl]
選擇d.[Id],d.[SequenceId],d.[code],d.[alarmdefineid],
CONVERT(varchar,d.[occurTime],120),d.[confirmation],d.[ConfirmationTime),
d.[維護名稱],d .[維護程序],
CONVERT(varchar,getdate(),120),d.[screen],CONVERT(varchar,getdate(),120)
從刪除的d
結束
如果@ @錯誤0
開始
RAISERROR('ERROR ',16,1)
廻滾事務
返廻
結束
位律師廻複
0條評論