利用触发器控制应用程序客户端的验证

  当在应用程序中对某个表添加记录时,为验证某些列录入的合法性,可利用触发器在当前操作的表加以触发器控制。比如某一界面有三个录入文本控件,且这三个录入信息必须都符合,否则直接抛出高级别的报警信息并终止用户继续作业。实例如下:


 1     CREATE TRIGGER [dbo].[tri_tblA]
 2     ON [dbo].[tblA]
 3     FOR INSERT
 4     AS
 5     BEGIN
 6 
 7         IF(EXISTS (SELECT 1 FROM inserted where no='XX-SC001-Q'))
 8         BEGIN
 9             IF(NOT EXISTS(        select a.cxNo,a.pn,a.cno 
10                 from inserted  a left join 
11                     tblB  b on b.po=a.po and b.co=a.cno and a.no=b.no
12                      where b.no='XX-SC001-Q'))
13             BEGIN
14                 DECLARE @ERRMSG VARCHAR(500)
15                 DECLARE @po VARCHAR(50)
16                 DECLARE @co VARCHAR(50)
17                 SELECT @po=po FROM tblB WHERE no='XX-SC001-Q'
18                 SELECT @co=co FROM tblB WHERE no='XX-SC001-Q'
19                 SET @ERRMSG='当前的no是:[XX-SC001-Q],'+'po是:['+@PN+']co是:['+@CNO +']!!!'
20                 RAISERROR(@ERRMSG,16,1)
21                 ROLLBACK TRANSACTION
22             END 
23         END
24         ELSE
25         BEGIN
26             DECLARE @ERRMSG1 VARCHAR(500)
27             SET @ERRMSG1='不存在当前录入的no!'
28             RAISERROR(@ERRMSG1,16,1)
29             ROLLBACK TRANSACTION
30         END
31         
32 
33     END

 

 

 

posted @ 2020-11-14 15:48  tiger_yj  阅读(96)  评论(0编辑  收藏  举报