关于数据库的触发器的使用

发布网友

我来回答

2个回答

热心网友

--去掉这个就OK了while(1=1),你这是死循环啊!!!,你也没搞游标啊
create trigger mydata on Data for insert 
as
begin
    declare @status varchar(255),@dataID int
    select @dataID=DataID from inserted
    set @status=''
    
    if (select data from Data where DataID=@dataID and Type=1)>37.0
    set @status='发烧'
    
    if(select data from Data where DataID=@dataID and Type=2)<6
    set @status=@status+'睡眠质量差'
     
    update Data set status=@status where DataID=@dataID
end


--建议你的存储过程写成这样啊
create trigger mydata on Data for insert 
as
begin
update Data set status=
Case When A.Type=1 And A.data>37.0 Then '发烧' else '' End+
Case When A.Type=2 And A.data<6 then '睡眠质量差' else '' End 
From Data A inner join inserted B  
on A.DataID=B.DataID
End

热心网友

while(1=1)
不能这样写,你那死循环了
WHILE(@@FETCH_STATUS=0)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com