首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

简单的插入触发器,如何修改

2013-11-29 
简单的插入触发器,怎么修改,在线等看了如下代码应该明白我什么意思。。该怎么改呢CREATE trigger TransportR

简单的插入触发器,怎么修改,在线等
看了如下代码应该明白我什么意思。。该怎么改呢

CREATE trigger TransportRecordsInsertTrg
on TransportRecords_FID_1
for insert
AS
declare @MaxTemperature float 
declare @MinTemperature float

select @MaxTemperature=m.MaxTemp,@MinTemperature=m.MinTemp from
MonitorRules m inner join inserted i
on m.BarCode=i.BarCode
if i.Temperature >@MaxTemperature or i.Temperature <@MinTemperature
begin
insert into MonitorLog (BarCode,RID,TemMonitor) Values(m.BarCode,m.RID,i.Temperature)
end

RETURN

[解决办法]

--試試以下:
CREATE trigger TransportRecordsInsertTrg
    on TransportRecords_FID_1
    for insert
AS
begin
    if EXISTS
    (
select *
FROM MonitorRules m 
inner join inserted i on m.BarCode=i.BarCode
WHERE i.Temperature >m.MaxTemp or i.Temperature <m.MinTemp
    )
    begin
    insert into MonitorLog (BarCode,RID,TemMonitor) 
select m.BarCode,m.RID,i.Temperature
FROM MonitorRules m 
inner join inserted i on m.BarCode=i.BarCode
WHERE i.Temperature >m.MaxTemp or i.Temperature <m.MinTemp
    end
END

[解决办法]
引用:
目前的不能运行啊,只是我理想的结果


试试这样呢:


CREATE trigger TransportRecordsInsertTrg
on TransportRecords_FID_1
for insert
AS
declare @MaxTemperature float 
declare @MinTemperature float

select @MaxTemperature=m.MaxTemp,@MinTemperature=m.MinTemp from
MonitorRules m inner join inserted i
on m.BarCode=i.BarCode


insert into MonitorLog (BarCode,RID,TemMonitor) 
select m.BarCode,m.RID,i.Temperature
from MonitorRules m 
inner join inserted i
        on m.BarCode=i.BarCode
where i.Temperature >@MaxTemperature or i.Temperature <@MinTemperature
go

热点排行