分享时间:2020-02-06 22:30:20会员:bekda目录:电脑网络 - 数据库浏览:1621 次
USE [ATT2018] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[Check_Update] --首次创建CREATE,后续修改ALTER:更新、新增触发器 ON [dbo].[Checkinout] ----在指定表中创建触发器 AFTER INSERT,UPDATE --更新、新增事件触发 AS --执行SQL语句 DECLARE @TemLogid AS varchar(20) --定义变量 SELECT @TemLogid=Logid FROM inserted --变量赋值:临时表inserted IF EXISTS(SELECT Logid FROM XF2020..CheckDate WHERE XF2020..CheckDate.Logid=@TemLogid) --如果记录已存在,执行UPDATE操作 BEGIN UPDATE XF2020..CheckDate SET XF2020..CheckDate.Userid=inserted.Userid, XF2020..CheckDate.CheckTime=inserted.CheckTime, XF2020..CheckDate.Sensorid=inserted.Sensorid, XF2020..CheckDate.AttFlag=inserted.AttFlag FROM inserted WHERE XF2020..CheckDate.Logid=@TemLogid END ELSE IF @TemLogid IS NOT NULL --如果记录不存在且索引变量不为空,执行INSERT操作 BEGIN SET IDENTITY_INSERT XF2020..CheckDate ON --允许主键插入显式值 DECLARE mycursor CURSOR FOR SELECT * FROM inserted --定义游标 DECLARE @Logid AS int,@Userid AS varchar(20),@CheckTime AS datetime,@CheckType AS int,@Sensorid AS int,@WorkType AS int,@AttFlag AS int,@Checked AS bit,@Exported AS bit,@OpenDoorFlag AS bit --定义变量,必须与表的所有字段一一对应 OPEN mycursor --打开游标 --FETCH参数:PRIOR 前一行 | NEXT 下一行| FIRST 第一行 | LAST 最后一行 | ABSOLUTE { n | @nvar} 绝对行 | RELATIVE { n | @nvar} 相对行 --将游标行中的列字段数据从左到右依次放到局部变量中。 --变量数据类型必须与相应的结果集列的数据类型匹配,或是结果集列数据类型所支持的隐式转换。 --变量的数目必须与游标选择列表中的列数一致 FETCH NEXT FROM mycursor INTO @Logid,@Userid,@CheckTime,@CheckType,@Sensorid,@WorkType,@AttFlag,@Checked,@Exported,@OpenDoorFlag --游标指向下一行数据,如果 FETCH NEXT 为对游标的第一次提取操作,则返回结果集中的第一行。 WHILE (@@fetch_status=0) --当游标能成功读取下一条数据时 BEGIN INSERT INTO XF2020..CheckDate( Logid, Userid, CheckTime, Sensorid, AttFlag )VALUES( @Logid, @Userid, @CheckTime, @Sensorid, @AttFlag ) FETCH NEXT FROM mycursor INTO @Logid,@Userid,@CheckTime,@CheckType,@Sensorid,@WorkType,@AttFlag,@Checked,@Exported,@OpenDoorFlag END CLOSE mycursor --通过释放当前结果集并且解除定位游标的行上的游标锁定,关闭一个开放的游标,close后,如果再次打开游标还可以照常使用 DEALLOCATE mycursor --删除游标引用,释放了游标占用的内存空间,DEALLOCATE后,如果再想使用游标,必须从新建立 END
发布日期:2020/01/15
发布日期:2019/07/22
发布日期:2019/03/17
苏公网安备 32011102010041号
320111201705278429
苏ICP备12027725号