记一次SQL Server insert触发器操作

需求:在河道水情表(ST_RIVER_R )新增插入数据时,更新实时数据表(SS_data) 中关联字段的值。

需求概括下:当A表中新增数据时,同时更新B表中的某字段

代码如下:

USE [DBCNBZ]
GO

/****** Object:  Trigger [dbo].[tri_insert_a]    Script Date: 2021/11/10 14:17:00 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
CREATE trigger [dbo].[tri_insert_a]
on [dbo].[ST_RIVER_R] 
after insert
as
begin

declare @Z1 numeric(18,3);
declare @Q1 numeric(18,3);
declare @Z2 numeric(18,3);
declare @Q2 numeric(18,3);
declare @Z3 numeric(18,3);
declare @Q3 numeric(18,3);
declare @TM1 datetime;
declare @TM2 datetime;
declare @TM3 datetime;

--一站
select top 1 @Z1 = Z from [ST_RIVER_R] where STCD='00000001' order by TM desc;
select top 1 @Q1 = Q from [ST_RIVER_R] where STCD='00000001' order by TM desc;
select top 1 @TM1 = TM from [ST_RIVER_R] where STCD='00000001' order by TM desc;

--二站
select top 1 @Z2 = Z from [ST_RIVER_R] where STCD='00000002' order by TM desc;
select top 1 @Q2 = Q from [ST_RIVER_R] where STCD='00000002' order by TM desc;
select top 1 @TM2 = TM from [ST_RIVER_R] where STCD='00000002' order by TM desc;

--三站
select top 1 @Z3 = Z from [ST_RIVER_R] where STCD='00000013' order by TM desc;
select top 1 @Q3 = Q from [ST_RIVER_R] where STCD='00000013' order by TM desc;
select top 1 @TM3 = TM from [ST_RIVER_R] where STCD='00000013' order by TM desc;

begin
update [dbo].[SS_data] set water1=@Z1,[SunShiFlow1]=@Q1,TM=@TM1

where [dbo].[SS_data].Num ='Z1';

update [dbo].[SS_data] set water1=@Z2,[SunShiFlow1]=@Q2,TM=@TM2

where [dbo].[SS_data].Num ='Z2';

update [dbo].[SS_data] set water1=@Z3,[SunShiFlow1]=@Q3,TM=@TM3

where [dbo].[SS_data].Num ='Z3';
end
 
end


GO

 我这里是每次更新了 SS_data中三个字段的值,SS_data是一张实时数据表,每次都是update操作,每个测站保留最新的一条数据。

这里注意下 触发器的变量定义和赋值的方式

declare @TM3 datetime;

--一站
select top 1 @TM3 = TM from [ST_RIVER_R] where STCD='00000001' order by TM desc;

 

posted @ 2021-11-10 14:45  宁静致远·TangJ  阅读(360)  评论(0)    收藏  举报