触发器 insert instead of
2016-06-20 13:11
309 查看
alter trigger tri
on HR_PunchRecord
instead of insert
as
declare @FRegNo varchar(20)
declare @FEmpCode varchar(20)
declare @FPunchID varchar(20)
declare @FVerifyMode varchar(20)
declare @FDate varchar(20)
declare @FTime varchar(20)
declare @FPhoto varchar(20)
select @FRegNo=FRegNo,@FEmpCode=FEmpCode ,@FPunchID=FPunchID ,@FVerifyMode=FVerifyMode ,@FDate=FDate ,@FTime=FTime ,@FPhoto=FPhoto from inserted
if exists (select 1 from HR_PunchRecord where FRegNo=@FRegNo and FPunchID=@FPunchID and FDate=@FDate and FTime=@FTime)
begin
--print'存在'
rollback transaction
end
else
begin
insert into HR_PunchRecord ( HR_PunchRecord.FRegNo,HR_PunchRecord.FEmpCode,HR_PunchRecord.FPunchID,
HR_PunchRecord.FVerifyMode,HR_PunchRecord.FDate, HR_PunchRecord.FTime,
HR_PunchRecord.FPhoto, HR_PunchRecord.FIsNew)
values
(@FRegNo,@FEmpCode,@FPunchID,@FVerifyMode,@FDate,@FTime,@FPhoto,1)
end
FOR | AFTERAFTER 指定触发器仅在触发
SQL 语句中指定的所有操作都已成功执行时才被触发。所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。如果仅指定 FOR 关键字,则 AFTER 为默认值。不能对视图定义 AFTER 触发器。INSTEAD OF指定执行 DML 触发器而不是触发 SQL 语句,因此,其优先级高于触发语句的操作。如果仅指定 FOR 关键字,则 AFTER 为默认值。也就是说, FOR = AFTER。
on HR_PunchRecord
instead of insert
as
declare @FRegNo varchar(20)
declare @FEmpCode varchar(20)
declare @FPunchID varchar(20)
declare @FVerifyMode varchar(20)
declare @FDate varchar(20)
declare @FTime varchar(20)
declare @FPhoto varchar(20)
select @FRegNo=FRegNo,@FEmpCode=FEmpCode ,@FPunchID=FPunchID ,@FVerifyMode=FVerifyMode ,@FDate=FDate ,@FTime=FTime ,@FPhoto=FPhoto from inserted
if exists (select 1 from HR_PunchRecord where FRegNo=@FRegNo and FPunchID=@FPunchID and FDate=@FDate and FTime=@FTime)
begin
--print'存在'
rollback transaction
end
else
begin
insert into HR_PunchRecord ( HR_PunchRecord.FRegNo,HR_PunchRecord.FEmpCode,HR_PunchRecord.FPunchID,
HR_PunchRecord.FVerifyMode,HR_PunchRecord.FDate, HR_PunchRecord.FTime,
HR_PunchRecord.FPhoto, HR_PunchRecord.FIsNew)
values
(@FRegNo,@FEmpCode,@FPunchID,@FVerifyMode,@FDate,@FTime,@FPhoto,1)
end
FOR | AFTERAFTER 指定触发器仅在触发
SQL 语句中指定的所有操作都已成功执行时才被触发。所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。如果仅指定 FOR 关键字,则 AFTER 为默认值。不能对视图定义 AFTER 触发器。INSTEAD OF指定执行 DML 触发器而不是触发 SQL 语句,因此,其优先级高于触发语句的操作。如果仅指定 FOR 关键字,则 AFTER 为默认值。也就是说, FOR = AFTER。
相关文章推荐
- Python判断列表是否已排序的各种方法及其性能分析
- OpenGl 坐标转换
- 玻璃旅行
- Java工具类——发送GET/POST请求工具
- LINK : fatal error LNK1201: 写入程序数据库
- Linux 打包和压缩 方法详解
- ArcGIS Engine加载ArcGIS Server服务
- OpenGL 的渲染流水线
- apache2.4版本服务器在本机上配置虚拟站点
- js属性控件
- Android之线程池ExecutorService
- Java工具类——常用正则表达式工具RegexpUtils
- 使用Instruments来监控应用内存分配
- 字符串匹配KMP算法的理解(详细)
- Karma +Jasmine+ require JS进行单元测试并生成测试报告、代码覆盖率报告
- OpenGL 渲染管线理论
- OpenGL 纹理映射
- Tomcat设置JDK路径
- AC-自动机(AC-Automachine)
- OpenGL FBO 对象