我是靠谱客的博主 纯情跳跳糖,最近开发中收集的这篇文章主要介绍触发器,根据具体业务写弹窗提示,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

USE [XXXXX]
GO
/****** Object:  Trigger [dbo].[trg_Biz_Samp_19]    Script Date: 2016/4/22 9:58:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--------先接收任务再样品领取,结果登记提示--------------
ALTER trigger [dbo].[trg_Biz_Samp_19] ON [dbo].[biz_Samp]
AFTER insert,UPDATE 
AS
BEGIN
   IF UPDATE(SampStatusId)
   BEGIN
      declare @batchid uniqueidentifier = newid();


 BEGIN TRAN
 
 INSERT INTO GNotification(GContent, GNavigateUri, BizId, CreateBatchId)
      SELECT '您有新的待办事项【结果登记】: ' , 'f103015' ,INSERTED.SampId, @batchid  
 FROM INSERTED 
 INNER JOIN DELETED ON DELETED.SampId = INSERTED.SampId 
 left join biz_DeptTask on biz_DeptTask.TaskId = INSERTED.TaskId
 


 WHERE 
 INSERTED.SampStatusId != DELETED.SampStatusId   
 and INSERTED.SampStatusId = 420
 and exists(select 1 from biz_DeptTask where TestStatusId >= 310  )
 --and INSERTED.TaskId = biz_DeptTask.TaskId)                            ----确保是先接收了任务状态


   INSERT INTO GNotificationReceiver(GNotiId, GReceiveUserId)
SELECT n.GNotiId, u.UserId FROM GNotification n
INNER JOIN biz_Samp s ON s.SampId = n.BizId
INNER JOIN biz_DeptTask dt on dt.TaskId = s.TaskId
INNER JOIN sys_User u ON u.DeptId = dt.DeptId AND (',' + s.TesterIds + ',') LIKE ('%,'+ CONVERT(varchar(50), u.UserSN) +',%')  


----- 一个样品对应两个部门的两个人A,B,所以一个sampid 对应了两个主检人,比如:A接收,B不接收,A领取样品,应通知A,因为>=310,此时此两主检人链接的都是A的部门任务
        -----我们要通知的那个主检人是A,:该部门任务的主检人部门=u1.deptid,筛选掉B。         
----INNER JOIN后面的ON后的AND  等价于  WHERE 后面跟条件  。LEFT JOIN 则不然,ON后面不符合要求的空记录,只要左边有就会出来,有NULL。


WHERE n.CreateBatchId = @batchId AND dt.TestStatusId >= 310,
AND EXISTS(SELECT 1 FROM View_UserFucntion uf WHERE uf.UserId = u.UserId AND uf.FunctionId = CONVERT(INT, SUBSTRING(n.GNavigateUri, 2, 1000))) --用户必须是有功能权限的
GROUP BY n.GNotiId, u.UserId


 COMMIT TRAN
   END
END



最后

以上就是纯情跳跳糖为你收集整理的触发器,根据具体业务写弹窗提示的全部内容,希望文章能够帮你解决触发器,根据具体业务写弹窗提示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部