新建两个表一个叫做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起,秒数 )
在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新插入字段的数据
