--根据插入“污染源基本信息”表的数据,建立新的表并给表建立insert触发器
create trigger AddPollution on 污染源基本信息 for insert
as
declare @objCode varchar(12)
declare @newTableName varchar(15)
declare @objTableName varchar(18)
declare @Unit 废水排放量单位
select @objCode = i.污染源编码 from inserted i
set @newTableName = 'Poll_'+@objCode
set @objTableName = 'PollObj_'+@objCode
set @Unit='TNE'
exec('create table'+@newTableName+'(
ID bigint,
排放口编码 varchar(15),
监测时间 dateTime,
流量 decimal )' )
exec('proc_OnHour '+@newTableName+','+@objCode+','+@Unit)
exec('create table'+@objTableName+'(
ID bigint,
排放口编码 varchar(15),
检测时间 datetime,
污染物编码 char(3),
浓度 decimal,
浓度单位 水污染物浓度单位,
实时排放量 decimal,
实时排放量_单位 污染物排放量单位,
状态 污染物检测数据状态)' )
exec('proc_Obj_OnHour '+@objTableName+','+@objCode)
drop trigger Addeffluent
--根据插入“污水处理厂基本信息”表的数据,建立新的表并给表建立insert触发器
create trigger Addeffluent on 污水处理厂基本信息 for insert
as
declare @objCode varchar(12)
declare @newTableName varchar(17)
declare @objTableName varchar(20)
declare @Unit char(3)
select @objCode = i.污水处理厂编码 from inserted i
set @newTableName = 'Poll_'+@objCode
set @objTableName = 'PollObj_'+@objCode
set @Unit = 'TNE'
exec('create table '+@newTableName+'(
ID bigint,
排放口编码 varchar(15),
监测时间 dateTime,
流量 decimal)' )
exec('proc_OnHour '+@newTableName+','+@objCode+','+@Unit)
exec('create table '+@objTableName+'(
ID bigint,
排放口编码 varchar(15),
监测时间 datetime,
污染物编码 char(3),
浓度 decimal,
浓度_单位 水污染物浓度单位,
实时排放量 decimal,
实时排放量_单位 污染物排放量单位,
状态 污染物监测数据状态)' )
exec('proc_Obj_OnHour '+@objTableName+','+@objCode)
drop proc proc_Obj_OnHour
--污染源_废水排放口污染物小时数据--------------------------------------------------------------------
create proc proc_Obj_OnHour
@TableName varchar(20),
@objCode varchar(12)
as
print @TableName
exec('create trigger tgrObj'+@objCode+'on '+@TableName+' for insert
as
declare @contamination char(3)
declare @ndavg decimal
declare @ndmax decimal
declare @ndmin decimal
declare @ndavgUnit 水污染物浓度单位
declare @ndmaxUnit 水污染物浓度单位
declare @ndminUnit 水污染物浓度单位
declare @iavg decimal
declare @imax decimal
declare @imin decimal
declare @iavgUnit 废水排放量单位
declare @imaxUnit 废水排放量单位
declare @iminUnit 废水排放量单位
declare @time datetime
declare @wry char(12)
declare @pfk char(15)
select @iavg = avg(t0.实时排放量),@imax = max(t0.实时排放量),@imin = min(t0.实时排放量),@time = max(t0.监测时间),
@ndavg = avg(t0.浓度),@ndmax = max(t0.浓度),@ndmin = min(t0.浓度)
from
'+@TableName+' t0,inserted i where
datediff(hour,t0.监测时间,i.监测时间)=0
and t0.排放口编码 = i.排放口编码
select @pfk = i.排放口编码,@iavgUnit = i.实时排放量_单位,@imaxUnit= i.实时排放量_单位,@iminUnit=i.实时排放量_单位,
@contamination = i.污染物编码,@ndavgUnit = i.浓度_单位,@ndmaxUnit = i.浓度_单位,@ndminUnit=i.浓度_单位
from inserted i
set @wry = '+@objCode+'
delete from 污染源_废水排放口污染物小时数据 where datediff(hour,日期时间,@time)=0
insert into 污染源_废水排放口污染物小时数据(
污染源编码,
排放口编码,
日期时间,
污染物编码,
最小浓度,
最小浓度_单位,
平均浓度,
平均浓度_单位,
最大浓度,
最大浓度_单位,
最小排放量,
最小排放量_单位,
平均排放量,
平均排放量_单位,
最大排放量,
最大排放量_单位
) values(
@wry,
@pfk,
@time,
@contamination,
@ndmin,
@ndminUnit,
@ndavg,
@ndavgUnit,
@ndmax,
@ndmaxUnit,
@imin,
@iminUnit,
@iavg,
@iavgUnit,
@imax,
@imaxUnit
)
')
drop proc proc_onHour
--污染源_污水排放口小时数据-------------------------------------------------------------------------------------------------
create proc proc_OnHour
@TableName varchar(17),
@objCode varchar(12),
@objUnit char(3)
as
print @objUnit
print @TableName
print @objCode
exec('
create trigger tgr'+@objCode+'
on '+@TableName+' for insert
as
declare @iavg decimal
declare @imax decimal
declare @imin decimal
declare @iUnit char(3)
declare @time datetime
declare @wry char(12)
declare @pfk char(15)
set @wry = '+@objCode+'
set @iUnit = '''+@objUnit+'''
select @iavg = avg(t0.流量),@imax = max(t0.流量),@imin = min(t0.流量),@time = max(t0.监测时间) from
'+@TableName+' t0,inserted i where
datediff(hour,t0.监测时间,i.监测时间)=0
and t0.排放口编码 = i.排放口编码
select @pfk = i.排放口编码 from inserted i
delete from 污染源_废水排放口小时数据 where datediff(hour,日期时间,@time)=0
insert into 污染源_废水排放口小时数据(
污染源编码,
排放口编码,
日期时间,
最小流量,
最小流量_单位,
平均流量,
平均流量_单位,
最大流量,
最大流量_单位
) values(
@wry,
@pfk,
@time,
@imin,
@iUnit,
@iavg,
@iUnit,
@imax,
@iUnit )
)
create trigger AddPollution on 污染源基本信息 for insert
as
declare @objCode varchar(12)
declare @newTableName varchar(15)
declare @objTableName varchar(18)
declare @Unit 废水排放量单位
select @objCode = i.污染源编码 from inserted i
set @newTableName = 'Poll_'+@objCode
set @objTableName = 'PollObj_'+@objCode
set @Unit='TNE'
exec('create table'+@newTableName+'(
ID bigint,
排放口编码 varchar(15),
监测时间 dateTime,
流量 decimal )' )
exec('proc_OnHour '+@newTableName+','+@objCode+','+@Unit)
exec('create table'+@objTableName+'(
ID bigint,
排放口编码 varchar(15),
检测时间 datetime,
污染物编码 char(3),
浓度 decimal,
浓度单位 水污染物浓度单位,
实时排放量 decimal,
实时排放量_单位 污染物排放量单位,
状态 污染物检测数据状态)' )
exec('proc_Obj_OnHour '+@objTableName+','+@objCode)
drop trigger Addeffluent
--根据插入“污水处理厂基本信息”表的数据,建立新的表并给表建立insert触发器
create trigger Addeffluent on 污水处理厂基本信息 for insert
as
declare @objCode varchar(12)
declare @newTableName varchar(17)
declare @objTableName varchar(20)
declare @Unit char(3)
select @objCode = i.污水处理厂编码 from inserted i
set @newTableName = 'Poll_'+@objCode
set @objTableName = 'PollObj_'+@objCode
set @Unit = 'TNE'
exec('create table '+@newTableName+'(
ID bigint,
排放口编码 varchar(15),
监测时间 dateTime,
流量 decimal)' )
exec('proc_OnHour '+@newTableName+','+@objCode+','+@Unit)
exec('create table '+@objTableName+'(
ID bigint,
排放口编码 varchar(15),
监测时间 datetime,
污染物编码 char(3),
浓度 decimal,
浓度_单位 水污染物浓度单位,
实时排放量 decimal,
实时排放量_单位 污染物排放量单位,
状态 污染物监测数据状态)' )
exec('proc_Obj_OnHour '+@objTableName+','+@objCode)
drop proc proc_Obj_OnHour
--污染源_废水排放口污染物小时数据--------------------------------------------------------------------
create proc proc_Obj_OnHour
@TableName varchar(20),
@objCode varchar(12)
as
print @TableName
exec('create trigger tgrObj'+@objCode+'on '+@TableName+' for insert
as
declare @contamination char(3)
declare @ndavg decimal
declare @ndmax decimal
declare @ndmin decimal
declare @ndavgUnit 水污染物浓度单位
declare @ndmaxUnit 水污染物浓度单位
declare @ndminUnit 水污染物浓度单位
declare @iavg decimal
declare @imax decimal
declare @imin decimal
declare @iavgUnit 废水排放量单位
declare @imaxUnit 废水排放量单位
declare @iminUnit 废水排放量单位
declare @time datetime
declare @wry char(12)
declare @pfk char(15)
select @iavg = avg(t0.实时排放量),@imax = max(t0.实时排放量),@imin = min(t0.实时排放量),@time = max(t0.监测时间),
@ndavg = avg(t0.浓度),@ndmax = max(t0.浓度),@ndmin = min(t0.浓度)
from
'+@TableName+' t0,inserted i where
datediff(hour,t0.监测时间,i.监测时间)=0
and t0.排放口编码 = i.排放口编码
select @pfk = i.排放口编码,@iavgUnit = i.实时排放量_单位,@imaxUnit= i.实时排放量_单位,@iminUnit=i.实时排放量_单位,
@contamination = i.污染物编码,@ndavgUnit = i.浓度_单位,@ndmaxUnit = i.浓度_单位,@ndminUnit=i.浓度_单位
from inserted i
set @wry = '+@objCode+'
delete from 污染源_废水排放口污染物小时数据 where datediff(hour,日期时间,@time)=0
insert into 污染源_废水排放口污染物小时数据(
污染源编码,
排放口编码,
日期时间,
污染物编码,
最小浓度,
最小浓度_单位,
平均浓度,
平均浓度_单位,
最大浓度,
最大浓度_单位,
最小排放量,
最小排放量_单位,
平均排放量,
平均排放量_单位,
最大排放量,
最大排放量_单位
) values(
@wry,
@pfk,
@time,
@contamination,
@ndmin,
@ndminUnit,
@ndavg,
@ndavgUnit,
@ndmax,
@ndmaxUnit,
@imin,
@iminUnit,
@iavg,
@iavgUnit,
@imax,
@imaxUnit
)
')
drop proc proc_onHour
--污染源_污水排放口小时数据-------------------------------------------------------------------------------------------------
create proc proc_OnHour
@TableName varchar(17),
@objCode varchar(12),
@objUnit char(3)
as
print @objUnit
print @TableName
print @objCode
exec('
create trigger tgr'+@objCode+'
on '+@TableName+' for insert
as
declare @iavg decimal
declare @imax decimal
declare @imin decimal
declare @iUnit char(3)
declare @time datetime
declare @wry char(12)
declare @pfk char(15)
set @wry = '+@objCode+'
set @iUnit = '''+@objUnit+'''
select @iavg = avg(t0.流量),@imax = max(t0.流量),@imin = min(t0.流量),@time = max(t0.监测时间) from
'+@TableName+' t0,inserted i where
datediff(hour,t0.监测时间,i.监测时间)=0
and t0.排放口编码 = i.排放口编码
select @pfk = i.排放口编码 from inserted i
delete from 污染源_废水排放口小时数据 where datediff(hour,日期时间,@time)=0
insert into 污染源_废水排放口小时数据(
污染源编码,
排放口编码,
日期时间,
最小流量,
最小流量_单位,
平均流量,
平均流量_单位,
最大流量,
最大流量_单位
) values(
@wry,
@pfk,
@time,
@imin,
@iUnit,
@iavg,
@iUnit,
@imax,
@iUnit )
)
唑洅湾仔頂樓,窗邊菂佬鹰飝翔嗻