触发器实现当一个表中字段改变时同时改变另一个表中字段值

触发器实现当一个表中字段发生变化时同时改变另一个表中字段

1.建表

新建两个表一个叫做Telephonics用来存放航班全部字段的数据,主键为SelfNum航迹号;另一个一个叫做FlightAndSection用来存放航迹号、航班号、扇区编号、时间字段。

create table Telephonics(

-------------------------------总体----------------------------------
TrackNum  tinyint null,     --包中航迹的数量,不能超过255                                  00    
ID int identity(1,1),
---------------------------短字节共有部分---------------------                                                
TrackRelted int null,			--航迹相关性,第一个bit 1是 0非,后七个bit航迹来源  01 
SelfNum int not null	primary key,	--航迹号 具有唯一性                                02    
SSRCode int null,			--应答机编码     2字节非负整数                     04 
Latitude float null,			--位置__纬度,4字节浮点数,单位:弧度, 网络序       06
Longitude float null,			--位置__经度,4字节浮点数,单位:弧度, 网络序       10
VelComOfLati int null,			--纬度速度分量,4字节,单位:弧度/秒, 网络序       14
VelComOfLong int null,			-- 经度速度分量,4字节,单位:弧度/秒, 网络序      18
Altitude int null,			-- 飞行高度,2字节整数,单位100英尺,网络序          22
TTime datetime null,			--时间,自1970/1/1起,秒数
---------------------------长字节特有------------------------
FlightNum varchar(20)	null,		--航班号,8字节                                    28
DepartAp  varchar(20)	null,		--起飞机场,四字节代码                             36
DepartTi  varchar(20)	null,		--起飞时间,可能为UTC时间                          40
Aircraft  varchar(20)	null,		--机型,6字节                                      44
Section   varchar(20)	null,		--扇区编号,2字节                                  50
Tail      varchar(20)	null,		--尾流类型                                         51 
)
create table FlightAndSection
(
	TrackCode int not null	primary key,	--航迹号 具有唯一性                        02    
	FlightCode varchar(20)	null,		--航班号,8字节                            28
	SectionCode   varchar(20)	null,	--扇区编号,2字节                          50
	FTime datetime null,			--时间,自1970/1/1起,秒数
)


2.创建触发器

在Telephonics表上创建触发器,当Telephonics表中插入新数据时FlightAndSection表中对应字段(航迹号、航班号、扇区编号、时间)同时插入相应的数据。

----当Telephonics发生了插入操作之后,会触发下面这个触发器的执行
go
create trigger TR_Telephonics_Insert on Telephonics
for insert 
as
begin
	/*声明临时变量*/
	declare @TrackCode int			--存储航迹号 
	declare @FlightCode varchar(20)		--存储航班号
	declare @SectionCode varchar(20)	--存储扇区号
	declare @FTime	datetime 		--当时时间	
	/*给临时变量赋相应值*/
	select @TrackCode=SelfNum  from inserted
	select @FlightCode=FlightNum from inserted
	select @SectionCode=Section from inserted
	select @FTime=TTime from inserted
	/*更新航班表中数据*/
	insert into FlightAndSection(TrackCode,FlightCode,SectionCode,FTime) values(@TrackCode,@FlightCode,@SectionCode,@FTime)
end

说明:定义临时变量是为了接收Telephonics新插入字段的数据

3.运行结果
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值