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